BitmapFactory的decodeByteArray和decodeStream返回null

时间:2011-09-15 11:06:00

标签: android bitmap

我正在尝试将ARGB byte数组解码为Bitmap,以将其显示为ImageView。 我尝试使用BitmapFactory的{​​{1}}和decodeByteArray(),但两种方式都将null设为decodeStream()

但是当我使用BitmapcreateBitmap()创建位图时,它完美无缺。这是工作代码。

data 是大小为setPixels()

的字节数组
imageWidth*imageHeight*4

但是我需要使用int[] pixels=new int[imageWidth*imageHeight]; int i=0,j=0; while (i<imageWidth*imageHeight*4) { pixels[j]= bytesToInt(data[i], data[i+1], data[i+2],data[i+3]); i += 4; j++; } Bitmap bitmap=Bitmap. createBitmap( imageWidth,imageHeight,Bitmap.Config .ARGB_8888) bmpf.setPixels(pixels, 0, imageWidth , 0, 0, imageWidth, imageHeight); //---------------------- definition of bytesToInt() int bytesToInt(byte b1,byte b2,byte b3,byte b4) { return (((b1& 0xff)<<24)+((b2 & 0xff)<<16)+((b3&0xff)<<8)+(b4&0xff)); } decodeByteArray()来实现这一点,因为后来我需要从decodeStream()数组为setPixels()创建整数数组,这是低效的。 我想要实现的是一个视频播放器,因此它需要每秒显示大约15帧/图像。

希望有人可以帮助我。 提前致谢

1 个答案:

答案 0 :(得分:0)

视频电视播放视频流,即视频帧流。 Bitmap.decodeStream需要一个图像字节流,即JPEG或PNG格式的字节流。

您的字节流格式是否正确,即jpeg或png?