0
我正在嘗試在給定的確切大小的Python中創建一個BMP文件。我需要這個尺寸的精度低至一個字節,而且我在生成圖像時遇到了問題。要做到這一點我用枕頭庫如下:在Python 3中創建給定大小的BMP文件
img = Image.new('RGB', (1, size//4), "black")
pixels = img.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
pixels[i,j] = (i, j, 1)
img.save("image.bmp")
哪裏size
等於1*1024*1024 = 1048576
(計入字節1MB大小)。但是,創建的文件有點大 - 它有1048630個字節。我想這是因爲一個位圖頭文件,但是當我嘗試從一般大小的。減去頭的大小:
img = Image.new('RGB', (1, (size-54)//4), "black")
生成的文件大小爲1048576 - 用2個字節無章可循。
如何正確計算創建BMP文件時提供的尺寸?這樣的文件的內容可以是隨機的,對我無關緊要。
是否真的需要創建一個文件然後被刪除?難道它不能在幾行或者從一開始就完成,而沒有創建 - 刪除 - 創建場景呢? – Asunez
這是我思考的一點點,唯一的方法(我能想到)確定它不超過一定的內存量是在創建文件後檢查它的實際內存。但是,您可以將初始代碼更改爲減去56個字節而不是54個,然後包含來自我的代碼的image_statistics檢查,並且只在圖像在減去56個字節後不符合您的要求時才執行圖像去除和再生。此時圖像再生實際發生的頻率將比原來提供的代碼少得多。 – BRRRRR