2015-06-19 149 views
1

我製作了一個Mandelbrot分形生成器(誰沒有,我知道),它可以直接渲染到磁盤以生成巨大的分形。.bmp文件格式的最大分辨率

我的第一個測試是UHD 4k分辨率,結果很好(所有這些例子都是8位顏色)。所以我決定去瘋狂一點,在兩個維度上都增大了10倍,即38400 x 21600.生成的文件看起來並不合適,因爲Photoshop無法打開它,但即使在Windows資源管理器中查看文件屬性也顯示尺寸/等缺失。

我以爲有一個機會,極限是32768,所以我試圖通過做一個30000 x 30000下去。這似乎仍然是無效的。

下降到10000 x 10000工作正常,所以我想知道什麼是文件格式的限制?

即使10x4k分辨率文件小於1GB,文件大小也不應該成爲問題。

+0

我剛剛嘗試了一個23040 x 4320位圖,它將giff我的圖像,以跨越我的三倍高清桌面與2x AA,它的工作原理,因此,極限之間的某處和30k x 30k – allanmb

+0

這將取決於圖像查看器(除了標題大小字段外)以及可用內存量。 8位圖像大小32000x32000將需要大約1G字節的內存。 –

+0

我意識到這一點,但有一個基本的格式問題,這意味着頭沒有被正確讀取以報告文件格式。無論如何,我使用的機器有32GB,所以內存不是問題。用於編寫bmp的代碼逐行執行,因此需要的內存也少得多。 – allanmb

回答

0

看起來BMP的最大尺寸可以是32Kx32K和2Gx2G像素。這裏是我發現的鏈接.. http://www.fileformat.info/format/bmp/egff.htm

+0

是的,我也發現,但這不是我的測試顯示。正如我在上面的帖子中提到的,我嘗試了30k x 30k,這不起作用。 – allanmb

+0

嘗試通用-1技巧,使它成爲29999x29999 :-)或者更小的東西,當然。 – karatedog

1

我不知道爲什麼,但Windows位圖的最大尺寸是32768x32768像素。我記得,它們實際上是在Windows 1.0之前開發的。我記得第一個官方文檔是在Windows 3.1發佈之後。他們可能認爲這在當時是非常大的:)兩個參數都被定義爲DWORD(32位整數)。寬度參數是無符號的,高度參數是有符號的(負值反轉圖像)。