在ASP.Net应用程序中调整PNG大小

时间:2009-11-04 11:08:40

标签: c# asp.net png bitmap

我正在为我的Asp.net应用程序生成一些PNG图表。使用PNG,我达到了我在网站上所需的质量,但我还需要生成一份报告,因为我必须将我的图表从897x651调整为216x161。如何在不损失太多质量的情况下实现这一目标。我试过了:

我对两种方式都不满意。请有人帮帮我吗?使用PNGout,您可以将bmp转换为png而不会降低质量。但你无法调整大小

2 个答案:

答案 0 :(得分:0)

实际上,我在使用System.Drawing类调整内容时遇到了同样的问题。

Graphics类(这也用于您发布的链接http://www.peterprovost.org/blog/post/Resize-Image-in-C.aspx)具有属性SmoothingMode和InterpolationMode。我把它们设置为:

var graphics = Graphics.CreateFromImage( ... );
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.InterpolationMode = InterpolationMode.High;

这大大提高了质量(虽然在大图像上有性能损失),但到目前为止我只用JPG尝试过。

老实说,我很快就在我的ASP.NET应用程序中抛弃了System.Drawing并使用了imagemagick(http://www.imagemagick.org/)来处理图形内容。

答案 1 :(得分:0)

不丢失质量的绝对最佳方法(如果您要生成原始图像)是从头开始生成图像,但尺寸较小。

否则.NET中内置的图像缩放功能不仅适用于PNG图像。 - 请参阅上面Marek评论中的链接。