Bitmap.Comp() android 中的方法。 Quality = 100 给出的图像比原始图像大
Bitmap.Comp() method in android. Quality = 100 gives image larger in size than original image
我正在使用位图的 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
) 时,生成的图像的大小大于被压缩的图像。我试图做的就是按照位图 class.
的 Android 文档以最高质量压缩图像
为什么合成图片的尺寸大于原始图片的尺寸?我错过了什么吗?
质量通过100
表示:
100 meaning compress for max quality
所以这意味着压缩器将对原始字节进行非常小的压缩...您正在加载的图像可能会以更多压缩保存。因此,您新压缩的图像比原始图像大。
我正在使用位图的 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
) 时,生成的图像的大小大于被压缩的图像。我试图做的就是按照位图 class.
为什么合成图片的尺寸大于原始图片的尺寸?我错过了什么吗?
质量通过100
表示:
100 meaning compress for max quality
所以这意味着压缩器将对原始字节进行非常小的压缩...您正在加载的图像可能会以更多压缩保存。因此,您新压缩的图像比原始图像大。