好吧,我一整天都在這個問題上討論這個問題。試圖弄清楚如何將位圖從canvas轉換爲1bpp(位/像素)Android中的位圖文件並將其物理保存。在Android中創建一個1bpp(位/像素)位圖
到目前爲止,我已經迭代了位圖,並將結果像素值的int []創建爲1或0。但是,我的下一個問題是我該怎麼做?
我試圖做的是像
int[] bits = // populated earlier
byte[] bmp = new byte[bits.length/8];
int byteindex = 0;
int bitindex = 0;
for (int i=0; i<bits.length; i++) {
if (bits[i] == 1)
// set to 1
else
// set to 0
if (bitindex++ == 8) {
bitindex = 0;
byteindex++;
}
}
OutputStream out = new FileOutputStream("/mnt/sdcard/dynbmp.bmp");
out.write(bmp);
out.close();
我得到一個文件出來,但它顯然不是一個有效的bmp文件。誰知道它是什麼。你不得不原諒我缺乏位字節和圖像知識,但我在哪裏搞砸了?我的想法完全錯了嗎?我是否缺少一些標題信息或什麼?
,您對Android的側蓋。現在,閱讀有關BMP文件結構,併爲您的數據重現它。這不僅僅是文件中的字節混亂。 http://en.wikipedia.org/wiki/BMP_file_format – 2012-02-28 05:31:00