CamanJS - 在应用过滤器/操作后更改底层画布

时间:2013-12-09 21:22:46

标签: canvas camanjs

CamanJS是一个很棒的库,用于在浏览器中进行实时图像处理。

我在预先存在的画布对象上使用Caman。如果用户“返回”到我网站的上一个区域然后再次进入画布,我可能需要更改该画布上的图像。

Caman似乎缓存了它收到的第一个图像数据,然后将画布“锁定”到其上下文中。在应用Caman后尝试更改画布会导致画布没有可见的变化。

我们如何在Caman之外更改画布数据,然后重新应用Caman滤镜?

1 个答案:

答案 0 :(得分:11)

我通过电子邮件发送了Ryan(CamanJS的创建者),他回答说有一个名为reloadCanvasData()的函数,可以通过对画布原始上下文的任何更改来调用“刷新”Caman的图像数据缓存。这是源链接:https://github.com/meltingice/CamanJS/blob/master/src/core/caman.coffee#L387-L392

这非常有效:存储您为画布创建的Caman实例,然后在任何后续运行中调用.reloadCanvasData()。然后,您需要重新应用所需的任何Caman操作。

我想记录此功能,因为谷歌似乎还没有包含任何引用。