我有一个本质上是星爆效应的图像。星爆的颜色是白色的,背景是透明的(PNG w/Alpha)。我随机在随机位置上的HTML5画布上生成这些星号,并同时生成随机色调,饱和度和光照(HSL)值。这些可能是RGB值,如果这简化了事情。HTML5 Canvas重新着色图像*之前*渲染
目标是根据随机生成的HLS值将其呈现在HTML5画布上以重新着色PNG,然后将其呈现到画布上。
我已经阅读了StackOverflow和其他站点上的一些其他帖子,但我看到的唯一解决方案涉及将其呈现在画布上,抓取图像显示位置的坐标,并修改像素上的颜色 - 逐像素基础。理论上这可以起作用,但是某些图像可能略有重叠。另外,如果背景已经存在,那么根据我的理解,背景的颜色也会被修改,这对我来说也不是什么解决方案。
如果这超出了Canvases能够实现的范畴,那么我想我可以通过使用GD2或Imagick通过PHP动态重新着色图像或通过Gimp命令行对图像进行重新着色, ImageMagick或其他一些图像库...
非常感谢!
- 观察 -
特别感谢@ jing3142闭屏画布渲染的初步建议,并@Jarrod提供重要的一块,我失踪:globalCompositeOperation = "source-in"
这里是一个工作的执行理念:http://jsfiddle.net/fwtW2/2/
作品中:
- ç hrome
- 火狐
- IE 9(没有测试其它版本)
我喜欢那种声音!我一定会试一试,看看这是否符合需求:) – 2013-03-12 21:14:47
这是我如何做我的位图字体 - 这意味着我可以提供一个标准的黑色字体,并以任何颜色显示:) – Jarrod 2013-03-12 21:20:50
' globalCompositeOperation ='源文件';'绝对是最缺的作品!当我得到一个坚实的实施时,我会分享我的代码给其他人从中受益。非常感谢! :) – 2013-03-12 22:40:17