【问题标题】:create too big BMP file in Ram produce argument exception在 Ram 中创建太大的 BMP 文件产生参数异常
【发布时间】:2012-10-18 13:46:29
【问题描述】:

我的代码:

Dim bmp_ As New Bitmap(width, height)


' here is for-loop to fill up bitmap   ( bmp_.SetPixel(x, y, Color.White) )


bmp_.Save("D:\test.bmp", ImageFormat.Bmp)

这对于小文件可以正常工作,但如果我尝试这样做:

Dim bmp_ As New Bitmap(30000, 30000)

..然后,我在那条线上得到了 ArgumentException。

问:有什么办法,怎么做这么大的bmp文件?

谢谢

编辑: 如果位图是 1000000 x 1000000 怎么办? 是否可以在硬盘上创建 BMP 文件并按顺序追加数据?

【问题讨论】:

  • 只是好奇:你想用这样的位图文件做什么?
  • 这个程序只是以二进制形式(0=黑色,1=白色)显示文件(从我的其他程序输出)
  • 好的,但是这些文件上有什么?什么是这么大的内容?
  • 查看第一条评论:只是好奇。你知道有些程序员喜欢他们的工作。
  • 计算输出

标签: vb.net bitmap argumentexception


【解决方案1】:

如果您使用的是 VS 2010,您可以尝试通过将这些行添加到 Visual Studio 的“构建后事件”部分来增加 VB 可用的内存量:

call "$(DevEnvDir)..\..\vc\vcvarsall.bat" x86
"$(DevEnvDir)..\..\vc\bin\EditBin.exe" "$(TargetPath)"  /LARGEADDRESSAWARE

这个过程在这里有更详细的解释:

http://blogs.msdn.com/b/calvin_hsia/archive/2010/09/27/10068359.aspx

【讨论】:

  • 我正在使用 Visual Basic 2010 Express。在那里找不到。
猜你喜欢
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多