【问题标题】:Android: lossless WEBP compressionAndroid:无损WEBP压缩
【发布时间】:2014-05-18 19:48:30
【问题描述】:

我正在使用以下代码压缩 WEBP 格式的图像:

bitmap.compress(Bitmap.CompressFormat.WEBP, 100, outputStream)

虽然我使用的是最高质量设置,但看起来图像不是无损压缩,而是有损。 对应于Android开发者文档,应该可以无损压缩WEBP文件: http://developer.android.com/guide/appendix/media-formats.html http://developer.android.com/reference/android/graphics/Bitmap.CompressFormat.html

我正在使用 Android 4.4.2 Kitkat 的 Nexus 4 上执行此操作。此外,我在整个项目中都使用了最高级别的 SDK。

有人知道如何将位图保存为无损 WEBP 图像吗?

【问题讨论】:

  • 我没有使用过 WEBP,但是有没有办法可以使用其他一些实用程序(例如 ImageMagick)来最终确认图像是以有损而不是无损保存的?如果我是一个赌徒,我猜你是对的,媒体格式页面是错误的,没有直接的方法以无损方式在 WEBP 中编码。但是,如果我站在你的立场上,我想确定图像是否以有损方式保存。
  • @CommonsWare 我在我的应用程序中再次加载图像,可以看到像素与之前的像素不同。如果我用 PNG 作为压缩算法做同样的事情,它工作得很好,这意味着我再次得到完全相同的图片。我使用的算法与我刚刚从 PNG 更改为 WEBP 的算法完全相同。
  • @CommonsWare ...此外,在将图像保存为 WEBP 后,许多像素具有相同的值,这表示有损压缩。

标签: android bitmap compression webp lossless


【解决方案1】:

从 Build.VERSION_CODES.Q 开始,值 100 会在 无损WEBP格式。否则文件将在有损 WEBP 中 格式。

https://developer.android.com/reference/android/graphics/Bitmap.CompressFormat#WEBP

通过将 WEBP_LOSSLESS 指定为压缩格式(或质量为 100 的 WEBP),无损 WebP 压缩似乎仅适用于至少具有 Android Q 的设备。

【讨论】:

    猜你喜欢
    • 2019-07-24
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2015-01-31
    • 2011-02-07
    • 2019-02-14
    • 1970-01-01
    相关资源
    最近更新 更多