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软件包请参阅此问题的答案:不需要其他软件包。请考虑表决。