在HTML5画布上使用drawImage调制颜色

时间:2011-10-16 14:58:08

标签: javascript image html5 canvas html5-canvas

我正在努力修改my game development IDE以生成用它创建的游戏的HTML5版本。 IDE的一个功能是能够定义帧,这不仅可以定义图形单元的转换方式(旋转,拉伸等),还可以定义绘制图形单元时的颜色。因此,如果我想要绿色的山丘和棕色的山丘,上坡和下坡,我只需要为所有这些定义一个图形,只需转换和着色不同。

我可以看到HTML5画布上下文如何允许我转换drawImage结果,但我没有看到调制颜色的实用方法。我希望能够说,例如,R = 255,G = 255,B = 0,A = 127并且没有任何蓝色通道(图形的黄色版本)以50%半透明度绘制(请记住,图形单元的某些部分可能已经是半透明或透明的。)

这可能吗?或者我需要getImageData并操纵像素并缓存被操纵的副本?如果我需要缓存被操纵的副本,那么实现这一目标的最佳JavaScript数据结构是什么?我想我想要某种字典,其中键是图像索引,RGBA以某种方式组成单个值。查找必须非常快,因为可能会对大多数绘制的图块进行查找。

1 个答案:

答案 0 :(得分:3)

可悲的是,如果没有getImageData的帮助,我认为你无法做到。

以下是使用getImageData

对图像进行着色的示例

http://jsfiddle.net/3eUBk/2/

这是我回答这个问题的方法,它解释了所发生的一切:How can I use a gradient map to tone a HTML5 canvas with an image in the canvas.

如果您需要更多信息,请与我们联系。