【问题标题】:How to create a lossless WebP image using toDataURL?如何使用 toDataURL 创建无损 WebP 图像?
【发布时间】:2012-07-16 21:54:25
【问题描述】:

我正在使用 canvas 元素在 Chrome 中尝试 WebP 图像格式。在 MDN 上,我看到 toDataURL 接受代表生成图像质量的第二个参数。

我想生成一个画布元素的无损 WebP 图像。但是,如果我通过 1 的质量(意思是 100%),我不会得到完全相同的像素。看起来它正在生成有损图像。

这是一个测试用例:http://jsfiddle.net/Nf5ve/1/。在绘制PNG图像时,某个像素的某种颜色的值为40。在自己绘制了100%质量的画布WebP图像后,相同的值已变为37。这对我来说似乎不是无损的,甚至虽然我通过了 100% 的质量。

是否可以让toDataURL 创建无损 WebP 图像,如果可以,如何?

【问题讨论】:

  • 只是为了仔细检查,原始PNG中是否有任何透明度?
  • @Jacob Foshee:不,这是来自lorempixel.com 的随机照片。

标签: javascript html google-chrome canvas webp


【解决方案1】:

webp 没有官方的 MIME 类型,所以暂时不要考虑。

toDataURL 的 chrome 上使用“image/webp”现在总是会导致 webp 图像有损,即使质量为“1”

目前貌似没有办法得到无损的webP图片

【讨论】:

  • 我很抱歉我的无知 - 但image/webp-lossless 给了我一个以data:image/png 开头的数据 URL。任何随机的 MIME 类型都会发生同样的情况——我认为它依赖于 png。我找到了this message,并指出无损目前还不稳定,应该很快就会发布。我想我会等一段时间看看会发生什么。
  • 如果我没记错的话this piece of the Chromium source 证实了我的理论。当我注意到关于无损 WebP 的一些有趣的事情时,我会更新。感谢您的帮助!
  • 哦,废话,你说得对,我应该更加勤奋!我想你现在运气不好。就非谷歌世界而言,目前还没有适用于 webp 的官方 MIME
猜你喜欢
  • 2020-11-21
  • 2014-10-04
  • 1970-01-01
  • 2018-04-27
  • 2019-11-18
  • 1970-01-01
  • 2015-07-16
  • 2018-01-08
  • 2013-08-03
相关资源
最近更新 更多