【问题标题】:Compress image without losing the quality压缩图像而不损失质量
【发布时间】:2014-03-22 19:04:33
【问题描述】:

我一直在开发一个可以拍照并保存的 Android 应用。我想通过压缩图像使上传速度更快。但是当我使用BitmapCompress 压缩它们时,图像似乎失去了它的质量。这里:

RAW

压缩

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

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

我想知道是否有办法,一个图书馆也许可以解决我的问题? Instagram 似乎在做这种压缩而不损失图像质量。

【问题讨论】:

  • 你的显示器里有你吗?
  • 我认为您正在寻找调整大小,而不是压缩。压缩几乎总是会影响质量。
  • @Neil 你是什么意思?
  • 您有两个选择:无损 png(很少压缩,如果有的话 - 质量很好)和 jpeg(有损压缩,质量差,取决于压缩比)。我会为 JPG 选择一个高质量的压缩比,比如 85(质量 %)左右(更高的质量,更少的压缩)
  • 这是一个妥协的问题...选择最低满意的质量并接受您设置的压缩给定的最终尺寸...

标签: android image-processing camera image-compression


【解决方案1】:

一些值得研究的关键词:

  • “EXIF 删除”
  • “无损压缩”

说明:

去掉一些多余的EXIF数据

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

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

http://www.exifpurge.com/

至于可以在您的 android 构建过程中使用的工具,需要进一步搜索。但至少 'EXIF 删除 android 库' 是很好的关键字开始

无损压缩

另一种选择是研究无损压缩。我过去在 Web 开发中使用过它们。就我而言,我使用了在命令行中工作的库以及“grunt”构建工具。

通过 google 快速搜索显示以下站点,该站点可直接在您的浏览器中运行。

https://compressor.io/compress

【讨论】:

    【解决方案2】:

    我同意@Saret BitmapCompress 会以良好的质量减小文件大小。您可以使用 80% 质量压缩而不进行缩放从 ~3MB 照片中获得 ~800-900KB 照片。裁剪照片可以获得更好的效果。

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

    【讨论】:

      【解决方案3】:
      Bitmap yourbitmap
      
      [...]
      
      OutputStream os = new FileOutputStream(filename); 
      yourbitmap.compress(CompressFormat.JPEG, 80, os);  // 80% compression
      

      这将使您的图像保持明亮和良好的质量。

      【讨论】:

        【解决方案4】:

        压缩总是会以一种或另一种方式导致质量下降。

        你可以这样做:

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

        【讨论】:

        • 不好调查。谢谢你:)
        猜你喜欢
        • 1970-01-01
        • 2019-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-22
        • 1970-01-01
        • 2015-03-04
        • 2012-03-07
        相关资源
        最近更新 更多