【发布时间】:2012-09-11 20:56:14
【问题描述】:
我想让图像大小小于其原始大小。我正在使用以下代码来压缩大小图像,但它将图像大小从 1MB 增加到 1.5MB
在不改变图像原始高度、宽度的情况下压缩大尺寸图像的任何其他解决方案。
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 文件格式的实际文件压缩问题。
-
我想在不损失质量的情况下缩小图像尺寸。这是我的问题。
标签: c# .net image system.drawing