首页 > 解决方案 > Android 位图到每个像素转换的字节数组

问题描述

我对解码位图感到困惑ByteOutputStream

我正在使用 android Library apw - android pdf writer,它使用一种方法将位图转换为 byte[] 数组。

我正在尝试使用 toByteArray() 方法来实现这一点,但输出 pdf 显示的是黑色图像。

图书馆方法

 private byte[] getBitmapData(Bitmap bitmap) {
        byte[] data = null;
        if (bitmap != null) {
            data = new byte[mDataSize];
            int intColor;
            int offset = 0;
            for (int y = 0; y < mHeight; y++) {
                for (int x = 0; x < mWidth; x++) {
                    intColor = bitmap.getPixel(x, y);
                    data[offset++] = (byte) ((intColor >> 16) & 0xFF);
                    data[offset++] = (byte) ((intColor >> 8) & 0xFF);
                    data[offset++] = (byte) ((intColor >> 0) & 0xFF);
                }
            }
        }
        return data;
    }

我的新方法

private byte[] getBitmapData(Bitmap bitmap) {
    if (bitmap != null) {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 80, stream);
        bitmap.recycle();
        return stream.toByteArray();
    }
    return null;
}

我在按位逻辑和对话方面缺乏经验。我无法完全理解库方法。

我在这里想念什么吗?一点帮助将不胜感激

标签: androidbitmappdf-generationjpeg

解决方案


推荐阅读