如果嘗試創建大于19000 px的位圖,則會出現錯誤:參數無效。我該如何解決?System.Drawing.Bitmap myimage= new System.Drawing.Bitmap(20000, 20000);
3 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
19000像素正方形(32bpp)將需要11552000000位(1.37 GB)將柵格存儲在內存中。這只是原始像素數據;System.Drawing.Bitmap中固有的任何其他額外開銷都會增加。在相同的色深下,要達到2萬像素正方形,僅原始像素內存就需要1.5GB。在單個對象中,您使用的是在32位環境中為整個應用程序保留的空間的3/4。64位環境通常具有較寬松的限制,但是您仍在使用單個對象最大大小的3/4。
為什么需要如此大的圖像尺寸?在計算機監視器上以1280x1024分辨率觀看時,側面19000像素的圖像將是14個屏幕寬乘18個屏幕高。我只能想象您正在制作高質量的打印圖形,在這種情況下,一張720dpi的圖像將是一個26英寸的方形海報。

慕斯王
TA貢獻1864條經驗 獲得超2個贊
我懷疑您遇到了內存上限問題。但是,位圖構造函數可能會失敗的原因有很多。這篇知識庫文章中列出了主要的內容,其中討論了中的GDI +限制CreateBitmap。 System.Drawing.Bitmap,內部在構造位圖時使用GDI本機API。
話雖這么說,那種大小的位圖恰好超過GB的RAM,很可能您已達到掃描線大小限制(64KB)或內存不足。
- 3 回答
- 0 關注
- 398 瀏覽
添加回答
舉報
0/150
提交
取消