如何减小图像的文件大小,同时保持 C# .net 的质量?



只是徘徊,如何在保持C# .net质量的同时减小图像的文件大小?

我使用以下代码来保存从ipad拍摄的图像:

Bitmap srcBmp = new Bitmap(file.InputStream);
int w = srcBmp.Width;
int h = srcBmp.Height;
if (srcBmp.Width > 2732 && srcBmp.Height > 2048)
{
w = 2732;
h = 2048;
}
SizeF newSize = new SizeF(w, h);
Bitmap target = new Bitmap(w, h);
var destRect = new Rectangle(0, 0, w, h);
HttpContext.Response.Clear();
HttpContext.Response.ContentType = "image/jpeg";
using (var graphics = Graphics.FromImage(target))
{
graphics.CompositingMode = CompositingMode.SourceCopy;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
using (var wrapMode = new ImageAttributes())
{
wrapMode.SetWrapMode(WrapMode.TileFlipXY);
graphics.DrawImage(srcBmp, destRect, 0, 0, w, h, GraphicsUnit.Pixel, wrapMode);
using (FileStream fileStream = new FileStream(fname, FileMode.Create))
{
target.Save(fileStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}

保存的图像始终超过 14MB。无论如何,我可以保持图像质量并将文件大小减小到2MB以下吗?

我认为在不降低图像质量的情况下减少太多是不可能的。但是,您可以使用Exif库从图像中删除元数据,而不会降低图片质量

或者,如果您擅长降低图像质量,则可以使用GID

最新更新