本文介绍了转换位图的ByteArray,反之亦然的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的Android应用程序,我想转换形象,从相机拍摄的,以字节数组,转换回位图来查看一个图像视图。我可以通过Bitmap preSS轻松地做到这一点。但我想这样做没有Bitmap preSS。问题是,我收到白线(较差的图像每次(线))
位图您好; //图像从摄像机里 ByteBuffer的缓冲= ByteBuffer.allocate(hello.getByteCount()); hello.copyPixelsToBuffer(缓冲液); 字节[] = bytes1 buffer.array(); 字节[]位=新的字节[bytes1.length * 4]; INT I; 对于(i = 0; I< bytes1.length;我++) { 位[我* 4] = 位[我* 4 + 1] = 位[我* 4 + 2] =(字节)〜bytes1 [I]; //反转源位 位[我* 4 + 3] = -1; // 0xFF的,这是阿尔法。 } 位图bmimage = Bitmap.createBitmap(360248,Bitmap.Config.ARGB_8888); bmimage.copyPixelsFromBuffer(ByteBuffer.wrap(位)); imageView11.setImageBitmap(bmimage);解决方案
位图的字节数组:
ByteArrayOutputStream流=新ByteArrayOutputStream();bmp preSS(Bitmap.Com pressFormat.PNG,100,流);字节[] = imageBytes stream.toByteArray();或
字节INT = bitmap.getByteCount();ByteBuffer的缓冲= ByteBuffer.allocate(字节);bitmap.copyPixelsToBuffer(缓冲液);byte []数组= buffer.array();字节数组位图:
的InputStream的InputStream =新ByteArrayInputStream进行(字节); BitmapFactory.Options O =新BitmapFactory.Options(); BitmapFactory.de codeStream(InputStream中,空,O);In my android application i want to convert image ,taken from camera, to byte array and convert back to bitmap to view in a image view. I can do it easily through Bitmappress. But i want to do it without Bitmappress. The problem is that i am getting white lines (poor images every time(lines) )
Bitmap hello; //image coming from camera ByteBuffer buffer = ByteBuffer.allocate(hello.getByteCount()); hello.copyPixelsToBuffer(buffer); byte[] bytes1 = buffer.array(); byte [] Bits = new byte[bytes1.length*4]; int i; for(i=0;i<bytes1.length;i++) { Bits[i*4] = Bits[i*4+1] = Bits[i*4+2] = (byte) ~bytes1[i]; //Invert the source bits Bits[i*4+3] = -1;//0xff, that's the alpha. } Bitmap bmimage = Bitmap.createBitmap( 360,248, Bitmap.Config.ARGB_8888); bmimage.copyPixelsFromBuffer(ByteBuffer.wrap(Bits)); imageView11.setImageBitmap(bmimage);解决方案
Bitmap to byte array:
ByteArrayOutputStream stream = new ByteArrayOutputStream(); bmppress(Bitmap.CompressFormat.PNG, 100, stream); byte[] imageBytes = stream.toByteArray();or
int bytes = bitmap.getByteCount(); ByteBuffer buffer = ByteBuffer.allocate(bytes); bitmap.copyPixelsToBuffer(buffer); byte[] array = buffer.array();byte array to Bitmap:
InputStream inputStream = new ByteArrayInputStream(bytes); BitmapFactory.Options o = new BitmapFactory.Options(); BitmapFactory.decodeStream(inputStream, null, o);
更多推荐
转换位图的ByteArray,反之亦然
发布评论