安卓中将JPEG转换为Bitmap会导致尺寸缩小。

3
我注意到将我的JPEG文件转换为位图后,大小减少了近一半,这正常吗?我的操作类似于以下内容:
    bmp1 = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()
                            + "/Test/test" + System.currentTimeMillis()
                            + ".jpg");
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bmp1.compress(Bitmap.CompressFormat.JPEG, 100, stream);
    byte[] byteArray = stream.toByteArray();
    System.out.println(byteArray.length);

你似乎正在解压缩JPEG并将其重新压缩为JPEG...因此,如果它更小,则必须以比原始质量更低的质量进行压缩。 - Torp
1
虽然其他答案是正确的,但是如果解码位图最初是使用相机或其他数字设备拍摄的,则解码图像并重新压缩它将删除所有 Exif 数据,这可能高达 65,535 字节。这只是需要记住的一些事情。 - alex.m.brown
1个回答

5

您的代码将jpeg解码为位图,然后重新压缩为jpeg格式。重新压缩可能会减小文件大小,但同时也会降低图像质量。

Jpeg压缩(即使在100%质量下)也不是无损的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接