2013-10-06 94 views
0

本質上,我的問題是找到一個簡單的方法來創建一個數組中的圖像文件。從數組創建圖像文件

我的問題是將CUPS光柵文件解析爲圖像。 CUPS RGB光柵文件標題爲1800字節。如果我輸入寬度和高度,我可以按照Mac順序將文件中包含的光柵陣列正確讀入Photoshop,並使用交錯的16位數據00RRGGBB。我寫了一個實用程序,它從頭文件中提取寬度和高度。

我想編寫另一個命令行實用程序,它將寬度,高度和文件名作爲輸入,截斷光柵文件的前1800個字節,並創建Tiff或BMP或任何最容易編寫的內容圖像與其餘數組中包含的數組 - 任何衆所周知的圖像格式都可以。

程序應該是C或Python,在Mac,Linux下運行。

+0

您的輸入尺寸是32位,而不是16位[BMP文件格式](http://en.wikipedia.org/wiki/BMP_file_format)是衆所周知的,您可以直接寫出它的標頭(具有正確的W,H和行跨度值)。然後複製你的數據,最後一行,並以ABGR順序。如果你的alpha總是0,你可以用24位BMP做,但是你也需要考慮行填充,這可能很麻煩。 – usr2564301

+0

哦,等待 - 你必須表示每個*分量*是16位寬。如果是這樣,你想/需要保存這個嗎? BMP僅8位/組件。 – usr2564301

+0

是的,每種顏色都是16位。所以00RRGGBB是一個32位字。我已經寫了一個文件解析器,它獲取W和H,然後逐字讀入數組(實際上一行一行地讀),所以我的問題是將它作爲文件寫出來。我強烈希望以16位來完成(沒有數據丟失),但這不是必要的。文件大約80MB(一頁CUPS柵格後臺位圖)。 – user2851797

回答

0

對於Python,PIL是此任務的工具。在圖像對象上使用putdata()(在鏈接上搜索putdata)方法將列表中的像素放入圖像中。

0

您可以嘗試GDAL,它支持多種圖像格式。您可以使用RasterIO(...)方法讀取圖像數據。