我想着色与用户选择的前景色和背景色飞灰度图像(仅限于红色,绿色,蓝色,青色,品红色,黄色,黑色和白色)。我想要的效果如下:着色灰度图像
original grayscale http://crawdad.cornell.edu/test/1.png red foreground http://crawdad.cornell.edu/test/2.png red foreground, yellow background http://crawdad.cornell.edu/test/3.png
从左至右,这些显示原来的灰度图像,其中用户选择红色作为背景颜色图像,并用红色相同的图像背景/黄色前景。
每当用户选择一种颜色时,在画布上重新绘制图像是不实际的(图像将为800x800px,我需要为动画创建30帧)。
我只针对最新版本的WebKit,Firefox和Internet Explorer,因此html5,css3和svg效果都很好。图像可以是直的html <img>
标签或可以在<svg>
标签内是<image>
(后者实际上是优选的)。
一个理想的解决方案可能涉及SVG过滤器(这是我所没有的经验,他们可以做到这一点?)。另一种可能性可能会将我的灰度图像视为一个alpha通道,其上方是纯色,下方是纯色(不知道我该如何处理)。
对于那些有Adobe Director经验的人,我想要的效果与Director的颜色和bgColor属性相同。 (我正在将一个项目从Director转换为html5/javascript。)
由于您选择的颜色有限,因此将这8个选项设置为具有透明背景的png文件可能最为简单。然后背景颜色只是CSS,你就完成了。 30fps可能太多了。 – Popnoodles
@popnoodles(感谢您在图片中进行编辑)。我会尝试一下,尽管它可能仍然包含不切实际的图像数量(我有更多的形状来处理比这里显示的螺旋)。我也开始研究svg过滤器。 feComponentTransfer过滤器看起来很有前途。 – BobW
哦,那我就不会接受我说的话了。从给出的信息中,我感觉有8个可能的保存图像。 SVG最有意义。 – Popnoodles