【发布时间】:2014-02-19 01:38:50
【问题描述】:
我发布了另一个主题,得到了一些温和的回复,但尽管答案解决了问题的质量方面,但它们在图像大小 (kb) 方面产生了另一个问题。 Asp.net image resizing quality
这就是问题所在。
我有一个 2MB 的图像,我想将其缩小到 480 像素宽度。
我使用了三种不同的方式来调整它的大小:
1) 在 Fileupload 上运行此代码:
System.IO.Stream st = FileUploadPost.PostedFile.InputStream;
myImage = System.Drawing.Image.FromStream(st);
thumb = myImage.GetThumbnailImage(newWidth, newHeight, null, System.IntPtr.Zero);
thumb.Save(myPath);
好处:以 kb 为单位的大小变小(大约 80Kb)。
缺点:视觉质量很糟糕
2) 在 Fileupload 上运行此代码(在提到的帖子中提供了解决方案):
Bitmap newImg = new Bitmap(newWidth, newHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics newGraphic = Graphics.FromImage(newImg);
newGraphic.DrawImage(myImage, 0, 0, newWidth, newHeight);
newGraphic.Dispose();
newImg.Save(myPath);
优点:视觉质量很好
缺点:大小仍然很大(大约 400kb)
3) 使用 Windows Paint 软件并“手动”将图像缩小到 480px 宽度
好处:1) 和 2) 的好处 -> 视觉质量很好,大小减少到 80kb 左右
问题是:
重现第 3 项行为(良好的视觉质量和较小的 kb 大小)的代码是什么?
谢谢
【问题讨论】:
标签: asp.net image-processing thumbnails