asp.net - 如何在 ASP.NET 应用程序中有效地缩放和裁剪图像?

标签 asp.net image

我们在使用允许用户上传和裁剪图像的 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/

相关文章:

python - OpenCV 特征匹配图像中的多个相似对象

asp.net - 在用户控件中查看状态

c# - 不支持文化

C# - 第一次尝试在 VS2008 中使用 WCF

javascript - 动态裁剪图像 css javascript/jquery

ios - iPad 设备上的按钮图像错误,但模拟器中没有

c++ - 无需读取整个图像的 OpenCV 图像尺寸

asp.net - Web API 2 身份./Token 总是返回404错误

c# - 重置密码恢复状态

python - 图像变形场的 B 样条插值