javascript - 有没有办法用 Canvas 实现类似 Photoshop 的乘法、差值等图层效果?

标签 javascript html canvas

我正在寻找一种方法来实现类似 Photoshop 的图层效果,例如 Canvas + JavaScript 的乘法和差值(以及屏幕)。

另外,Canvas 有模糊效果吗?

最佳答案

(假设您至少对图像处理有一定的了解。如果情况并非如此,您可能需要改进您的问题或询问范围更窄的另一个问题。)

这些图层效果并不难实现。 Wikipedia has descriptions of how they work以及一些提示。例如,对于乘法,您将每个 channel 和每个像素的值相乘,然后将结果除以 255。

至于模糊,通常通过简单的 convolution 来完成。例如,参见 Wikipedia again 。基本上,在对信号进行卷积时,您所做的就是查看具有不同权重的单个像素的邻域(对于高斯模糊,这些权重形成 2D 正态分布的形状)。简单的框模糊可以使用矩阵

1 1 1
1 1 1
1 1 1

这只会模糊每个像素及其直接周围的像素。在图像上执行三次此操作,您也可以获得高斯模糊的良好近似值。

关于javascript - 有没有办法用 Canvas 实现类似 Photoshop 的乘法、差值等图层效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3433874/

相关文章:

javascript - 使用 Nightwatch 访问 iFrame 元素

php - 使用 php 更改密码

html - 如何使用 CSS 使 3 个元素相互重叠

javascript - 如何开始使用 Fabric.js

javascript - 无法从内存中删除已创建但从未附加到页面的 Canvas 元素

javascript - 在 SocialShare 插件上共享 Base64 图像时出错

javascript - 如何在for循环中初始化数组?

javascript - 转换后的 blob 正在获取格式不正确的文件

javascript - 计算多边形的法向量 - Newells 法

javascript - 如何在jquery中找到具有特定类名的行?