我想使图像尺寸小于原始尺寸。我使用以下代码压缩尺寸图像,但它将图像尺寸从1MB增加到1.5MB
任何其他解决方案可以在不改变图像原始高度,宽度的情况下压缩大尺寸图像。少质量较小的输出文件将是 -
如何在不改变原始高度的情况下压缩图像,在c#中的图像宽度
public static byte[] CompressImage(Image img) {
int originalwidth = img.Width, originalheight = img.Height;
Bitmap bmpimage = new Bitmap(originalwidth, originalheight);
Graphics gf = Graphics.FromImage(bmpimage);
gf.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
gf.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.AssumeLinear;
gf.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
Rectangle rect = new Rectangle(0, 0, originalwidth, originalheight);
gf.DrawImage(img, rect, 0, 0, originalwidth, originalheight, GraphicsUnit.Pixel);
byte[] imagearray;
using (MemoryStream ms = new MemoryStream())
{
bmpimage.Save(ms, ImageFormat.Jpeg);
imagearray= ms.ToArray();
}
return imagearray;
}
你能改写你的问题吗?这听起来像是你在使用“压缩”的时候,你的意思是“缩小”,同时你也在讨论JPEG文件格式的实际文件压缩问题。 – Dai
我想让图像尺寸变小而不会损失quality.this是我的问题。 –