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

Java 使用未压缩位图字节数组,java,android,arrays,bitmap,xamarin,Java,Android,Arrays,Bitmap,Xamarin,目前,我正在尝试将未压缩的位图字节数组发送到第三方库,当我获取此字节数组时,我希望将其转换回位图 目前,一个可行的解决方案是循环字节数组并逐像素绘制位图,但显然这方面的性能很糟糕 问题是:如何以最快的方式将未压缩的字节数组转换为位图 是否尝试使用BitmapFactory.decodeByteArray() 我用了这个方法;成功了 public static Drawable byteToDrawable(byte[] data) { if (data == null)

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

目前,一个可行的解决方案是循环字节数组并逐像素绘制位图,但显然这方面的性能很糟糕


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

是否尝试使用BitmapFactory.decodeByteArray()


我用了这个方法;成功了

public static Drawable byteToDrawable(byte[] data) {

    if (data == null)
        return null;
    else
        return new BitmapDrawable(BitmapFactory.decodeByteArray(data, 0,data.length));
}
它返回一个可绘制的

我想这会对你有所帮助。

使用以下方法:

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通道,您将需要另一种图像类型,例如
buffereImage.type_4BYTE\u ABGR

尝试位图。使用int[]colors参数创建()BitMapFactory需要Android软件包请参阅此问题的答案:不需要其他软件包。请考虑表决。