2012-04-09 84 views
1

我想知道是否有方法繪製圖像,但給它一個着色效果。Colourize在畫布上的圖像?

如果你考慮遊戲,當你想放置一個精靈,但是一個對象的方式,往往你試圖放置的對象得到一個紅色的色調,以表明它不能放置這就是我試圖實現。

我目前在這裏的不透明度繪製:

ctx.globalAlpha = 0.5     
ctx.drawImage(image,abposx,abposy); 

這是可能實現無庫?

+0

你可以使用jquery插件來實現這一點。他們在這些插件中所做的只是在畫布中操縱圖像數據。 – 2013-11-13 12:03:01

+0

jQuery不是答案,因爲它對canvas元素沒有太大的作用。我已經在2012年4月得到了答案... – Sir 2013-11-13 16:40:56

回答

3

您可以在上面畫一個半透明的矩形。例如:

ctx.fillStyle = 'rgba(255, 0, 0, 0.5)'; // 1/2 opacity red 
ctx.fillRect(0, 0, 30, 30); // Draw this over top of your image 

Here's a demo.

等距圖像,所有你需要做的就是建立適當的路徑。這裏有一個例子:

您可以通過設置夾覆蓋到你的圖像globalCompositeOperationsource-atop

ctx.globalCompositeOperation = 'source-atop'; 
ctx.fillStyle = 'rgba(255, 0, 0, 0.5)'; // 1/2 opacity red 
ctx.fillRect(0, 0, 30, 30); // Draw this over top of your image 
ctx.globalCompositeOperation = 'source-over'; 

Here's a demo.您可能還需要使用影子帆布如果你想領域儘管如此,畫畫也有內容。

+0

我不需要將fillRect的寬度/高度設置爲圖像寬度高度,否則它將覆蓋整個畫布? – Sir 2012-04-09 01:39:09

+0

@Dave:你需要適當地設置它的寬度,高度和位置,是的。 – Ryan 2012-04-09 01:47:03

+0

嗯不知道這是完全正常工作,因爲它是等角度,它將不可避免地使alpha像素紅色,以及=/ – Sir 2012-04-09 01:49:16