【问题标题】:if I pass "image/jpeg" in the toDataURL() I lost the quality?如果我在 toDataURL() 中传递“image/jpeg”,我会失去质量吗?
【发布时间】:2014-01-26 17:15:13
【问题描述】:

如果我将“image/jpeg”作为 toDataURL() 方法中的第一个参数传递,我试图将 html5 画布数据保存到服务器,但我失去了质量?

如何在图像 png 上保持相同的质量

【问题讨论】:

  • 您可以指定自己的图像质量作为第二个参数,不是吗? canvas.toDataURL(type,quality);
  • 我有一个 png 图像,我需要将它保存为 jpeg 图像,我想保持图像的质量,所以我需要知道参数 "quality" 的值

标签: html canvas jpeg todataurl


【解决方案1】:

要定义您自己的图像质量,请使用:toDataURL( type , quality );

toDataURL('image/jpeg', 1  ); // HQ
// 0.92 = FF default
toDataURL('image/jpeg', 0.4); // LQ

MDN Docs

toDataURL(在可选的 DOMString 类型中,在任何 ...args 中) DOMString 返回一个数据:包含由类型指定格式的图像表示的 URL(默认为 PNG)。返回的图像是 96dpi。

  • 如果画布的高度或宽度为0,则返回代表空字符串的“data:”。
  • 如果请求的类型不是image/png,并且返回值以data:image/png开头,则不支持请求的类型。 Chrome 支持 image/webp 类型。
  • 如果请求的类型是image/jpeg或image/webp,则第二个参数,如果在0.01.0之间,被视为表示图像质量;如果第二个参数是其他参数,则使用图像质量的默认值。其他参数被忽略。

【讨论】:

  • 第二个参数如果等于 1 ,表示我保持图像的质量?这是 chrome 和 firefox 的作品吗?
  • @LallouDaddou 1 = 高,0 = 低,就像在 Photoshop 中一样,这是在发送到成像算法之前定义 jpg 图像质量的方法。和压缩。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多