将Bitmap转换为ByteArray并返回Bitmap不起作用

时间:2015-06-09 18:49:37

标签: android bitmap

我尝试将Bitmap转换为byteBuffer,然后使用以下代码将其转换回Bitmap。没有错误,但ImageView无法在屏幕上显示任何内容。图像为640 X 480 RGB jpeg。

    Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().toString()+"/tower.jpg");

    ByteBuffer byteBuffer = ByteBuffer.allocate(bitmap.getByteCount());
    bitmap.copyPixelsToBuffer(byteBuffer);
    byte[] byteArray = byteBuffer.array();

    Bitmap final_bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
    ((ImageView) findViewById(R.id.imageView)).setImageBitmap(final_bitmap);

1 个答案:

答案 0 :(得分:1)

尝试以这种方式将位图转换为字节数组:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

和byteArray一样进行位图

Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);