Javascriptで画像の色を変えるには

Pocket

WEBディレクターの平井です。
 
仕事の波ってありますよね。弊社は2〜3月が繁忙期になるタイプの制作会社でして、
スケジュール表とにらめっこの毎日です。

 
さて今回は、

こういう画像があったとして、
これの色をカラフルに変化させたい場合にどうしましょう、というお話です。

 

サンプル

 

Flashでもなく、CanvasやSVGでもなく、GIFアニメーションでもなく、
れっきとしたJavascript/jQueryなのですが、そんなことできるのでしょうか。

 

 

 $(function(){<br />
  var i = 0, j = 0;<br />
  function changeColor(){<br />
    i += 5;<br />
    j += 3;<br />
    if(i&gt;=360) i=0;<br />
	if(j&gt;=360) j=0;<br />
    var colorR = Math.abs(Math.round(Math.cos(i*Math.PI/180)*128));<br />
    var colorG = Math.abs(Math.round(Math.cos(j*Math.PI/180)*128));<br />
    $(&#8216;#badge&#8217;).css(&quot;background-color&quot;,&quot;rgb(&quot;+colorR+&quot;,&quot;+colorG+&quot;,64)&quot;)<br />
  }<br />
  $(&#8216;#badge&#8217;).fadeIn();<br />
  setInterval(changeColor,70);<br />
});

 
 …タネ明かしをすると、白い透過PNGを置いて、後ろにあるdivの背景色をcssで変えているだけです。

 

 

単純ですね。
でも発想の転換、ということで、こういうのを選択肢として思いつけるように頭を柔らかくしておきたいですね。

それでは。