【发布时间】:2020-08-28 12:51:50
【问题描述】:
创建大分辨率位图的这行简单代码会产生parameter is not valid error
Bitmap bitmap = new Bitmap(6500, 4500);
关于 SO 的一些问题是指 GDI+ 的内存瓶颈 参考C# "Parameter is not valid." creating new bitmap
我依赖 GDI+ 进行图像处理。更改所有代码是不切实际的。一些用户在处理大分辨率图像时报告问题。我该如何解决这个问题? 我的机器有 4GB 内存,我也尝试过构建 x64 版本的 exe。
【问题讨论】:
-
@Hans Passant 你能帮我解决这个问题吗?
-
您是否尝试按照您引用的问题的答案之一中的建议指定
PixelFormat?new Bitmap(6500, 4500, PixelFormat.Format16bppRgb555)我有 16GB,没有遇到您遇到的错误。 -
@jira 从文件创建位图时可以使用PixelFormat吗?
-
要从文件创建位图,请使用
Bitmap (string filename)构造函数。数据已经给出了位深度等属性。 -
这应该分配 (6500 x 4500 x 4) ~ 117M 的 RAM,到目前为止应该可以正常工作。您确定要向我们展示所有代码吗?我无法重现。或者你的确切上下文/环境是什么?
标签: c# .net bitmap gdi+ system.drawing