0

私のAndroidアプリケーションでは、カメラから取得した画像をバイト配列に変換し、ビットマップに変換して画像ビューで表示したいと考えています。Bitmap.compress で簡単にできます。しかし、Bitmap.compressなしでやりたいです。問題は、白い線が表示されることです(毎回画像が悪い(線))

                        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);
4

2 に答える 2

1

ビットマップからバイト配列へ:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] imageBytes = stream.toByteArray();

また

int bytes = bitmap.getByteCount();
ByteBuffer buffer = ByteBuffer.allocate(bytes); 
bitmap.copyPixelsToBuffer(buffer); 
byte[] array = buffer.array();

バイト配列からビットマップへ:

 InputStream inputStream = new ByteArrayInputStream(bytes);
  BitmapFactory.Options o = new BitmapFactory.Options();
  BitmapFactory.decodeStream(inputStream, null, o);
于 2013-10-31T09:31:45.410 に答える
0
    ByteArrayOutputStream baos = new ByteArrayOutputStream();  
    bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object   
    byte[] b = baos.toByteArray();
    ///useing following code 
    String encoded = Base64.encodeToString(b, Base64.DEFAULT);
于 2013-10-31T09:28:39.720 に答える