【问题标题】:Creating a 1bpp (bit per pixel) Bitmap in Android在 Android 中创建 1bpp(每像素位)位图
【发布时间】:2012-02-29 06:57:16
【问题描述】:

好吧,我整天都在为此绞尽脑汁。试图弄清楚如何在 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 bitmap


【解决方案1】:

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

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

【讨论】:

  • hm 我想我的大脑有点疲惫,只是希望它能神奇地工作。我得读一下。
猜你喜欢
  • 1970-01-01
  • 2012-11-03
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多