从文件中获取图像 - 内存不足异常

时间:2017-09-18 11:46:39

标签: c# .net image bitmap gdi+

我尝试从ma文件加载图片。这是我的代码:

public static Image GetImageFromFile(string filePath)
{
    using (var src = Image.FromFile(filePath))
    {
        var target = new Bitmap(src.Width, src.Height, src.PixelFormat);
        target.SetResolution(src.HorizontalResolution, src.VerticalResolution);

        using (var canvas = Graphics.FromImage(target))
        {
            canvas.DrawImageUnscaled(src, 0, 0, src.Width, src.Height);
        }       

        return target;
    }
}

我在行

中收到错误消息(内存不足)
canvas.DrawImageUnscaled(src, 0, 0, src.Width, src.Height);

但是当我搬家时

target.SetResolution(src.HorizontalResolution, src.VerticalResolution);

使用语句后,一切运作良好。

你能告诉我为什么吗?我以为我应该在绘制图像之前设置分辨率?

以下是我的平台和代码详情:

  • Platfrom:x86。
  • .Net Framework 4.0
  • src.Width:7360
  • src.Height:4912
  • src.PixelFormat:Format24bppRgb
  • src.Horizo​​ntalResolution:300
  • src.VerticalResolution:300

更新: 如果我在for循环中运行此代码,我仍然会收到错误消息=内存不足异常。你知道我怎么能处理这个问题吗?

0 个答案:

没有答案