【问题标题】:Canvas toDataURL with CSS webkitFilter使用 CSS webkitFilter 画布 toDataURL
【发布时间】:2013-04-23 03:30:30
【问题描述】:

我已将 CSS 过滤器应用于画布,如下所示:

canvas.style.webkitFilter = 'hue-rotate(90deg)';

如果我尝试使用锚元素的下载属性下载画布的内容:

var imgData = canvas.toDataURL('image/*');
link.download = 'Image';
link.href = imgData;

下载的图像没有应用过滤器。即使我使用 getImageData 来查看图像数据或尝试将图像源设置为图像数据,也会出现同样的问题。无论如何,JavaScript 中是否可以获取应用了 CSS 过滤器的画布的图像数据?

【问题讨论】:

  • 我不这么认为,css 是在操纵画布的呈现,而不是画布本身的数据,这就是 toDataURL 方法正在检索的内容
  • 你找到这个问题的解决方案了吗?

标签: javascript css html canvas


【解决方案1】:

您可以在画布本身中应用 Hue-shift。

例如,CamanJS 库有一些不错的图像过滤器:http://camanjs.com/

这是来自他们的文档:

色调

调整图像的色调。它可以用来改变颜色 以统一的方式呈现图像。范围是 0 到 100。

有时,色调在 0 到 360 的范围内表示。如果那是 你习惯的术语,想想 0 到 100 代表 0 到 360 范围内的色相偏移百分比。

来自 CamanJS 的示例代码:

Caman("#image", function () {
      this.hue(90).render();
});

【讨论】:

    猜你喜欢
    • 2018-03-15
    • 2012-11-30
    • 2018-12-31
    • 1970-01-01
    • 2019-10-18
    • 2011-08-07
    • 2013-05-16
    • 2016-04-23
    • 2015-09-15
    相关资源
    最近更新 更多