在MemoryStream中调整图像大小时,GDI +中发生一般错误

时间:2018-07-11 08:40:43

标签: c# asp.net gdi+ memorystream imageprocessor

我正在使用ImageProcessor处理网站中的图像。

我具有此调整大小功能

 public Image ResizePhoto6version(Image img, int width, int height)
    {
        using (var ms = new MemoryStream())
        {
            using (var imgf = new ImageFactory(false))
            {
                imgf.Load(img)
                    .Resize(new ResizeLayer(new Size(width, height), ResizeMode.Max))
                    .Save(ms);

                return Bitmap.FromStream(ms);
            }
        }
    }

在网络服务中,我运行以下代码

MemoryStream ytSmallStream = new MemoryStream();
MemoryStream ytMediumStream = new MemoryStream();
System.Drawing.Image ytSmallThumb = null;
System.Drawing.Image ytMediumThumb = null;

ytSmallThumb.Save(ytSmallStream, ImageFormat.Jpeg);
ytSmallStream.Position = 0;

ytMediumThumb.Save(ytMediumStream, ImageFormat.Jpeg);
ytMediumStream.Position = 0;

当我到达保存功能ytSmallThumb.Save()时,我得到了一个例外

A generic error occurred in GDI+

从ResizeThumbnailToSmall函数正确返回了图像,并且Stream具有正确大小的图像信息。

1 个答案:

答案 0 :(得分:0)

ImageProcessor今天让我发疯,每次我调整PNG文件大小时,它都会引发“ GDI +中发生一般错误”异常。在回收应用程序池之后,我不再看到该异常。

希望有帮助。