我想按因子开发图像的压缩尺寸。
用谷歌搜索后,我发现我可以在位图中使用compress
函数,如下所示
myImage.compress(Bitmap.CompressFormat.JPEG, compressRatio, out);
compressRatio
的可能值为100,50和25
因此,在100的情况下,原始大小的保存图像表示(1MB),50保存大小0.5MB,25保存0.25MB图像大小。
但实际上,在我传递值后,我会得到不同的值,例如
对于100,大小约为1.4M,对于50个大小约为250k,对于25 尺寸约为150k,如果尺寸为100,则正确缩放 约为1.4M,50种尺寸约为700k,25种尺寸约为300K
任何人都可以帮助我理解为什么它不能按预期工作吗?
=============================================== ===========
修改1 :
正如 CommonsWare 所提到的那样,compress()
无法实现这一点,那么有什么建议可以让我真正需要的东西
提示:我不想改变它的宽度和高度,我需要将它们保持为原始图像尺寸,但尺寸不同。
答案 0 :(得分:0)
按指定比例缩小图像大小 - android
这与compress()
上的Bitmap
方法无关。如果现有Bitmap
,您可以call createScaledBitmap()
创建缩放位图。
因此,在100的情况下,原始大小的保存图像表示(1MB),50保存大小0.5MB,25保存0.25MB图像大小。
这不是compress()
的压缩因子参数的工作原理。该值的确切含义取决于图像格式。对于JPEG,它控制压缩的损耗程度,但不是线性比例。例如,值为0不允许您将图像保存为零字节文件。