我的程序具有将工作画布的高分辨率图像导出到磁盘的功能。用户经常会尝试导出大约20,000 x 10,000像素@ 32bpp的图像,大约等于800MB。再加上在平均3D CAD程序中已经出现的严重内存消耗,你几乎可以保证在32位平台上出现内存不足的崩溃。创建巨大的图像
因此,现在我正在导出用户必须在像素编辑器中拼接在一起的1000x1000像素的图块。有没有一种方法可以在用户不做任何工作的情况下解决这个问题?
我想我可能会写一个小的exe文件,它可以在命令行中插入进程并自动执行拼接。这将是一个独立的过程,因此它将拥有2GB的RAM。或者还有更好的方法吗?我想支持jpg,png和bmp,因此将图像作为字节流写入磁盘并不是真的可行。
谢谢佩卡,我会检查出复合功能。我将无法使用我的安装程序发布ImageMagick,因此直接使用它们的功能已无法使用。 – 2010-04-24 11:14:05
@大卫不客气。但是如果你甚至不能发布外部的DLL,那么你肯定会推出自己的智能拼接/交换解决方案 - 这当然不是不可能的,而是一个坚强的破解!我确信有很多开源的拼接器可以获得至少灵感。 – 2010-04-24 11:48:42
我写了一个小的控制台应用程序,可以自动运行。这个过程不需要太长时间,但它仍然限制在32位操作系统上的2GB未压缩的图像数据。不过,我认为大多数用途都应该没问题。 – 2010-04-24 13:58:51