字节数组到位图转换问题

时间:2016-04-11 18:43:55

标签: android bytearray android-bitmap

大家好我试图实施Converting bitmap to byteArray android。我需要将我的byte []转换为位图而不进行压缩。但每次我得到整个黑色图像?知道怎么做吗? 我在做什么

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

在这里我如何得到位图

            BitmapFactory.Options options = new 
            BitmapFactory.Options();
            options.inScaled = false;
            Bitmap bmp = BitmapFactory.decodeByteArray(barray,0, barray.length,options);
            ImageView imageView = (ImageView) findViewById(R.id.resdetayimage);
            imageView.setImageBitmap(bmp);`

修改 位图工厂只解码压缩的东西。这就是为什么我的代码不起作用。所以我需要类似的东西。

    Bitmap.Config configBmp = Bitmap.Config.valueOf(bitmap.getConfig().name());
    Bitmap bitmap_tmp = Bitmap.createBitmap(width, height, configBmp);
    ByteBuffer buffer = ByteBuffer.wrap(byteArray);
    bitmap_tmp.copyPixelsFromBuffer(buffer);

但代码仍无效。那么我怎么能实现这个呢?我从意图中获得了byte []。

2 个答案:

答案 0 :(得分:0)

将位图转换为byteArray

ByteArrayOutputStream bStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, bStream);
byte[] mByteArray = bStream.toByteArray();

将byteArray转换为位图

Bitmap bitmap = BitmapFactory.decodeByteArray(mByteArray , 0, mByteArray.length);

答案 1 :(得分:0)

使用String(),因为它与copyPixelsFromBuffer()相反。