gpt4 book ai didi

c# - Graphics.DrawImage() - 抛出内存不足异常

转载 作者:行者123 更新时间:2023-11-30 14:33:48 26 4
gpt4 key购买 nike

我有一些图像需要做一些粗略的调整大小工作——为了这个例子的目的,我们只说我需要将给定图像的宽度和高度增加 4 个像素。我不确定为什么对 Graphics.DrawImage() 的调用会抛出 OOM - 非常感谢此处的任何建议。

class Program
{
static void Main(string[] args)
{
string filename = @"c:\testImage.png";

// Load png from stream
FileStream fs = new FileStream(filename, FileMode.Open);
Image pngImage = Image.FromStream(fs);
fs.Close();

// super-hacky resize
Graphics g = Graphics.FromImage(pngImage);
g.DrawImage(pngImage, 0, 0, pngImage.Width + 4, pngImage.Height + 4); // <--- out of memory exception?!

// save it out
pngImage.Save(filename, System.Drawing.Imaging.ImageFormat.Png);
}
}

最佳答案

我刚刚遇到了同样的问题。但是固定输出图形的大小并没有解决我的问题。我意识到我尝试使用非常高质量的图像来绘制图像,当我在大量图像上使用代码时,这会消耗太多内存。

g.CompositingQuality = CompositingQuality.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.SmoothingMode = SmoothingMode.HighQuality;

在对这些行进行注释后,代码完美运行。

关于c# - Graphics.DrawImage() - 抛出内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com