android中的Bitmap.Comp()方法。质量= 100使图像尺寸大于原始图像

时间:2015-11-06 19:14:26

标签: android image bitmap image-compression

我使用Bitmap的compress()方法借助以下代码压缩我的图像:

ByteArrayOutputStream baos;
Bitmap img = BitmapFactory.decodeFile(imgs[i].getAbsolutePath());
img.compress(Bitmap.CompressFormat.JPEG, compFactor, baos);
byte[] compImgBytes;
compImgBytes = baos.toByteArray();
OutputStream out1 = new BufferedOutputStream(new FileOutputStream(
        new File(dir.getString("dir", null) + File.separator +
        String.valueOf(imgsName) + ".jpg")));
out1.write(compImgBytes);

问题是,当我使用100作为此代码的压缩因子(compFactor = 100)时,结果图像的大小大于被压缩的图像。我试图做的就是根据Bitmap类的Android文档压缩图像的最高质量。

为什么合成图像的尺寸大于原始图像的尺寸?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

传递质量100表示:

  

100意味着压缩最高质量

这意味着压缩器将对原始字节进行非常小的压缩...您加载的图像可能会通过更多压缩来保存。因此,您新压缩的图像比原始图像大。