使用未压缩的位图字节数组

时间:2014-05-22 09:31:30

标签: java android arrays bitmap xamarin

目前我正在尝试将未压缩的位图字节数组发送到第三方库,当我收回此字节数组时,我想将其转换回Bitmap。

目前一个可行的解决方案是循环遍历字节数组并逐个像素地绘制到位图中,但显然性能很差。

问题是:如何以最快的方式将未压缩的字节数组转换为位图?

3 个答案:

答案 0 :(得分:0)

您是否尝试过使用BitmapFactory.decodeByteArray()?

http://developer.android.com/reference/android/graphics/BitmapFactory.html

答案 1 :(得分:0)

我用过这种方法;它有效!

public static Drawable byteToDrawable(byte[] data) {

    if (data == null)
        return null;
    else
        return new BitmapDrawable(BitmapFactory.decodeByteArray(data, 0,data.length));
}

它返回一个drawable ......

我认为它会对你有所帮助。

答案 2 :(得分:0)

使用此:

public static BufferedImage toBufferedImage(byte[] pixels, int width, int height) throws IllegalArgumentException {
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
    byte[] imgData = ((DataBufferByte)image.getRaster().getDataBuffer()).getData();
    System.arraycopy(pixels, 0, imgData, 0, pixels.length);
    return image;
}

根据您的字节顺序和Alpha通道,您需要其他图片类型,例如BufferedImage.TYPE_4BYTE_ABGR