我正在寫一個類,用於通過Mono For Android將位圖打印到Android中的便攜式藍牙打印機。我的類用於從流中獲取像素數據,以便可以以正確的格式將其發送到打印機。現在這個類很簡單,它只是讀取每個像素的高度,寬度和位數。垂直翻轉字節數組中的位圖的算法
使用它讀取的偏移量並將像素數據返回給打印機。現在我正在處理每像素1位黑白圖像。我正在使用的位圖是Windows格式。
這裏是原始圖像:
這裏是印刷的結果,所述第一圖像是沒有任何轉換。而第二個是用下面的代碼修改BitArray的結果:
BitArray bits = new BitArray(returnBytes);
BitArray flippedBits = new BitArray(bits);
for (int i = 0, j = bits.Length - 1; i < bits.Length; i++, j--)
{
flippedBits[i] = bits[j];
}
我的問題是:
如何垂直翻轉圖像時,我有一個字節數組工作。我很難找到這樣做的算法,所有的例子似乎都建議使用我不能使用的已建立的圖形庫。
編輯:
我的位圖被保存在一個1個維陣列,與第一行字節,則第二,第三等
您是否正在尋找交換矩陣中的數字,圖像的像素,以便圖像旋轉? 'flip'是什麼意思 – Adrian 2012-02-08 19:20:42
@Adrian是的,我需要修改數組,以便圖像以正確的方向打印。我正在尋找在Photoshop或其他繪畫程序中執行「翻轉垂直」命令的算法。 – dmck 2012-02-08 19:25:24
格式是否使得位數組包含'width * height * bits_per_pixel'位?如果是這樣,它是以「[first_row | second_row | ...]'的形式組織的嗎? – 2012-02-08 19:26:53