在Android中创建1bpp(每像素位)位图

时间:2012-02-28 05:24:36

标签: android bitmap

好的,所以整天在这个人身上绞尽脑汁。试图弄清楚如何将Bitmap从画布转换为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文件。谁知道它是什么。你不得不原谅我缺乏位字节和成像知识,但我在哪里搞砸了?这个想法完全错了吗?我错过了一些标题信息吗?

1 个答案:

答案 0 :(得分:0)

是的,你遗漏了几件事。这有点复杂......看这里:

http://en.wikipedia.org/wiki/BMP_file_format