我们在使用允许用户上传和裁剪图像的 ASP.NET 应用程序时遇到问题。之后图像都被缩放到固定尺寸。当处理大文件时,我们基本上会耗尽内存;看来 JPEG 的处理效率相当低——我们正在使用 System.Drawing.BitMap。您有任何一般建议,也许还有一些关于更有效的图像处理库的建议?您有哪些经验?
最佳答案
我遇到了同样的问题,解决方案是使用 System.Drawing.Graphics 进行转换并在完成后立即处理每个位图对象。这是我的库中的示例(调整大小):
public Bitmap ApplyTo(Bitmap bitmap)
{
using (bitmap)
{
Bitmap newBitmap = new Bitmap(bitmap, CalculateNewSize(bitmap));
using (Graphics graphics = Graphics.FromImage(newBitmap))
{
graphics.SmoothingMode =
SmoothingMode.None;
graphics.InterpolationMode =
InterpolationMode.HighQualityBicubic;
graphics.CompositingQuality =
CompositingQuality.HighQuality;
graphics.DrawImage(
bitmap,
new Rectangle(0, 0, newBitmap.Width, newBitmap.Height));
}
return newBitmap;
}
}
关于asp.net - 如何在 ASP.NET 应用程序中有效地缩放和裁剪图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/662080/