我正在通过方法调整jpeg 1200x900,556kb的大小:
public static Image ResizeImage(Image imgToResize, int height) //height=400
{
int destWidth;
int destHeight;
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;
float nPercent = 0;
float nPercentH = 0;
nPercentH = ((float)height / (float)sourceHeight);
nPercent = nPercentH;
destWidth = (int)(sourceWidth * nPercent);
destHeight = height;
Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();
return b;
}
SavingŁ
Image image = Image.FromStream(new FileStream(path, FileMode.Open));
Image imageAfterResizing =ResizeImage(image,400);
imageAfterResizing.Save(@"c:\myPhoto.jpg");
给了我555kb 533x400 jpeg。
为什么这张照片太重了。
照片jpeg 2111kb 2156x1571 我得到556kb 533x400 jpeg
为什么第一种情况太可怕了!
http://img6.imageshack.us/img6/1127/photo1nz.jpg http://img248.imageshack.us/img248/8063/photo2y.jpg
答案 0 :(得分:5)
看起来你没有指定保存格式,它可能会以位图的形式出现在另一端。
在保存期间指定格式:img.Save(“C:\\ foo.jpg”,ImageFormat.Jpeg);
答案 1 :(得分:1)
保存时会决定JPEG图像的压缩效果,但不会包含在您显示的代码中。
默认的压缩级别非常低,因此您可以将其设置为在保存时稍微压缩图像。
答案 2 :(得分:1)
我认为你会发现在两种情况下你都将较大的jpegs转换为位图图像。
两个位图都是533x400像素,两者的文件大小大致相同,为556kb。
如果要调整文件大小,则需要使用与位图图像不同的格式。
答案 3 :(得分:0)