在不损失质量的情况下压缩图像

时间:2014-02-21 10:19:43

标签: android image-processing camera image-compression

我一直在开发一款能够拍照并保存的Android应用。我希望通过压缩图像来提高上传速度。但是当我使用BitmapCompress压缩它们时,图像似乎失去了它的质量。在这里:

RAW

enter image description here

COMPRESSED

enter image description here

之前: 尺寸 - 1920X1920 文件大小 - 2.94MB

AFTER后: 尺寸 - 960X960 文件大小 - 644KB

我想知道是否有办法,图书馆可能会解决我的问题? Instagram似乎在不损失图像质量的情况下进行压缩。

4 个答案:

答案 0 :(得分:2)

压缩总会导致质量下降。

以下是您可以做的事情:

  • 如果您尚未使用压缩格式,请将压缩格式更改为PNG。
  • 找到尺寸和质量之间质量价值的完美折衷

答案 1 :(得分:2)

我同意@Saret BitmapCompress会以优质的方式减小文件大小。您可以使用80%质量压缩从~3MB照片获得约800-900KB的照片,无需缩放。裁剪照片可以获得更好的效果。

如果您不关心缩放并且深入细节对您来说并不重要,我强烈建议您使用以下库:

答案 2 :(得分:0)

Bitmap yourbitmap

[...]

OutputStream os = new FileOutputStream(filename); 
yourbitmap.compress(CompressFormat.JPEG, 80, os);  // 80% compression

这将使您的图像保持清晰且质量良好。

答案 3 :(得分:0)

值得关注的一些关键词:

  • 'EXIF删除'
  • '无损压缩'

说明:

删除一些多余的EXIF数据

您可以通过删除存储在图像中的EXIF数据来尝试减少文件大小。在许多情况下,EXIF数据占用了大量空间,并且通常包含的信息多于用户可能需要的用例。

快速谷歌搜索显示以下工具可能有助于删除EXIF数据。有Windows和Mac版本:

http://www.exifpurge.com/

至于可以在android构建过程中使用的工具,需要进一步搜索。但至少'EXIF删除安卓库'是以

开头的好关键词

无损压缩

另一种选择是研究无损压缩。我过去在Web开发中使用过它们。在我的例子中,我使用了从命令行工作的库和'grunt'构建工具。

快速谷歌搜索显示以下网站直接从您的浏览器。

https://compressor.io/compress