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

C# 在ASP.Net应用程序中调整PNG大小,c#,asp.net,png,bitmap,C#,Asp.net,Png,Bitmap,我正在为我的Asp.net应用程序生成一些PNG图表。有了PNG,我在网站上达到了我需要的质量,但我还需要生成一份报告,在那里,我必须将我的图表从897x651调整到216x161。如何在不损失太多质量的情况下实现这一点。我试过: 图像。获取图像…。 我对这两种方式都不太满意。有人能帮我吗?使用PNGout,您可以将bmp转换为png,而不会丢失质量。但是你不能调整大小实际上,我在使用System.Drawing类调整大小时遇到了同样的问题 您发布的链接中也使用的图形类具有属性Smoothing

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

图像。获取图像…。
我对这两种方式都不太满意。有人能帮我吗?使用PNGout,您可以将bmp转换为png,而不会丢失质量。但是你不能调整大小实际上,我在使用System.Drawing类调整大小时遇到了同样的问题

您发布的链接中也使用的图形类具有属性SmoothingMode和InterpolationMode。我将他们设定为:

var graphics = Graphics.CreateFromImage( ... );
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.InterpolationMode = InterpolationMode.High;
虽然这大大提高了质量,但在大图像上会带来性能损失,但到目前为止,我只在JPGs上尝试过


老实说,我很快就抛弃了System.Drawing,在我的ASP.NET应用程序中使用imagemagick进行图形处理

如果要生成原始图像,最好的绝对方法是重新从头开始生成图像,但尺寸较小


另外,在.NET中内置的图像缩放功能对于PNG图像来说是绰绰有余的。-请参阅上面Marek评论中的链接。

您可以在这里找到一些有用的答案:专为ASP.NET设计。不要使服务器崩溃。