2011-12-19 80 views
1

我正在嘗試手動讀取位圖。所以我使用文件流來讀取位圖文件。直到我不得不處理24位位圖文件時纔出現問題。有沒有一種方法可以將24位圖像實際讀入24位數組?24位數據類型數組保存24位位圖文件

我在一個字節數組這樣

byte[] fileBufferArray = new byte[fileLength]; 
+1

你能更具體嗎? 24位陣列是什麼意思?你現在對於不同的位圖文件有什麼代碼,以及它如何處理24位圖? – 2011-12-19 14:51:33

+0

@klijo - 24位數組是3個8位數組。我會在這個問題上做更多的研究。這聽起來像你不瞭解24位位圖文件的設計結構。我只知道你能理解你不明白的事實。 – 2011-12-19 15:03:26

回答

0

持有8位位圖圖像有幾個選項:

  1. 如果你不是太擔心內存(你沒有大量或非常大的位圖打開),則可以將其存儲爲32位數字。通常,第四個字節然後被解釋爲「alpha」(在背景上呈現圖像時的混合說明符)。大多數現代圖像處理庫現在都以這種方式處理彩色圖像。

  2. 您可以將顏色打包到字節數組中並單獨訪問它們。 RGB和BGR是兩種最常見的包裝訂單。通常,您最終還會在每行末尾添加填充字節,以便以字節爲單位的寬度與DWORD(4字節)邊界對齊。

  3. 您可以將圖像分割爲三個獨立的字節數組'平面',它們基本上分別是紅色,綠色和藍色的8位圖像。這是進行圖像處理時的另一種常見格式,因爲您的過濾步驟通常獨立於通道進行操作。