Asp.net减少了以kb为单位的图片大小

use*_*961 1 asp.net image-processing thumbnails

我发布了另一个主题,得到了一些温和的答复,但是尽管答案解决了问题的质量方面,但他们创建了另一个问题,图像大小以kb为单位。 Asp.net图像调整大小质量

这是问题。

我有一个2MB的图像,我想减小到480px的宽度。

我使用三种不同的方法来调整大小:

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);
Run Code Online (Sandbox Code Playgroud)

好处:以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); 
Run Code Online (Sandbox Code Playgroud)

好处:视觉质量好

缺点:大小仍然很大(大约400kb)

3)使用Windows Paint软件并“手动”将图像缩小到480px宽度

好处:1)和2)的好处->视觉质量很好,并且大小减小到80kb

问题是:

复制第3项行为(良好的视觉质量和较小的kb大小)的代码是什么?

谢谢

Nef*_*iis 5

尝试以下方法之一:

 Bitmap newImg = new Bitmap(newWidth, newHeight, System.Drawing.Imaging.PixelFormat.Format16bppRgb555);                            
 Graphics newGraphic = Graphics.FromImage(newImg);
 newGraphic.DrawImage(myImage, 0, 0, newWidth, newHeight);
 newGraphic.Dispose();
 newImg.Save(myPath); 
Run Code Online (Sandbox Code Playgroud)

要么

 Bitmap newImg = new Bitmap(newWidth, newHeight, System.Drawing.Imaging.PixelFormat.Format16bppArgb1555);                            
 Graphics newGraphic = Graphics.FromImage(newImg);
 newGraphic.DrawImage(myImage, 0, 0, newWidth, newHeight);
 newGraphic.Dispose();
 newImg.Save(myPath); 
Run Code Online (Sandbox Code Playgroud)

要么

 Bitmap newImg = new Bitmap(newWidth, newHeight, System.Drawing.Imaging.PixelFormat.Format8bppIndexed);                            
 Graphics newGraphic = Graphics.FromImage(newImg);
 newGraphic.DrawImage(myImage, 0, 0, newWidth, newHeight);
 newGraphic.Dispose();
 newImg.Save(myPath); 
Run Code Online (Sandbox Code Playgroud)

这只会稍微降低质量并大大减小尺寸,不过我不确定哪一个会更好。

这里还有很多其他选项可供尝试:

http://msdn.microsoft.com/zh-CN/library/system.drawing.imaging.pixelformat%28v=vs.110%29.aspx