从理论上讲,它应该是65,535 x 65,535,因为你有足够的内存,大约17GB.
但是,创建一个.NET 4.5控制台应用程序来测试它,它会抛出System.ArgumentException:参数无效.
该应用程序是为64位平台构建的.在具有32GB内存的64位平台上运行.我能够获得的最大分辨率是22,000 x 22,000像素.
我找不到任何关于此的文件.
奇怪的是,即使在22,000 x 22,000像素,它也不总是有效.它有时会起作用,它有时会抛出异常.这让我觉得它与连续的内存分配有关,但是有大约30GB的可用内存.
有没有人有这方面的经验?如果我想使用100,000 x 100,000像素图像和更大的图像,那么除了实现我自己的位图之外,最好的方法是什么?
编辑:问题不是.NET最大对象大小.这可以通过针对64位平台,并在应用程序配置中设置gcAllowVeryLargeObjects标志来克服.通过这种方式,我可以让应用程序使用单个整数数组消耗超过15GB的内存.到目前为止,答案似乎在于GDI +的底层实现,但我该如何解决呢?