【问题标题】:Bitmap to byteArray without compress位图到 byteArray 没有压缩
【发布时间】:2016-04-12 12:41:10
【问题描述】:

我知道下面的代码

Bitmap photo = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

但问题是这段代码大大降低了图像质量,以至于无法识别如何避免

photo.compress(Bitmap.CompressFormat.PNG,100, stream);

【问题讨论】:

    标签: android bitmap compression byte


    【解决方案1】:

    您可以使用 CompressFormat.PNG,压缩质量并不重要,它始终是无损的,如 documentation 中所述

    【讨论】:

    • JPEG 和 PNG 都不适合我 图像质量非常低 我正在使用 Lollipop 版本
    • 你确定输入的图片是高质量的吗?
    • 是的,我的照片是用 8 兆像素相机拍摄的
    【解决方案2】:
     array = new byte[w*h*4];
     Buffer dst = ByteBuffer.wrap(array);
     bmp.copyPixelsToBuffer(dst);
    

    【讨论】:

    • 这个只是给我们像素但是当我们想用 bitmapFactory.decodeByteArray 取回图像时它返回 null
    猜你喜欢
    • 2013-03-28
    • 1970-01-01
    • 2018-08-05
    • 2015-07-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多