f8g

putImageData の透過とふつうの透過

putImageData の透過

Canvas の putImageData は、その部分のデータを完全に上書きするので、alpha を 255 以下にしても以前のデータが透けて見えるなんてことにはなりません。画像合成なんかには使えません。

canvas.putImageData({
	width : 50,
	height: 70,
	data  : (new Array(50*70*4)).join(0).split(0).map(function(v){ return 0; })
}, 90, 140);
// みたいにやると、その部分に穴が開いたようになる

裏に img エレメントでも置いておいて Canvas と重ね合わせれば、合成したように見えなくもない。
↓こすると裏の画像が見えてくる遊び
http://arikui.s101.xrea.com/test/canvas/cg/test/scrub.html
(注: 画像ロードのタイミングか何かで、開いてからまたリロードする必要があるかも)
Canvas でフリーハンドはここのコピペ。
http://d.hatena.ne.jp/javascripter/20080910/1221063750

普通の透過

image_processing.jsでは透過を不完全にサポート(ImageDataでのみ)。
ここを参考にすればいいのかな。
http://d.hatena.ne.jp/h0shu/20071027/p1
Photoshopの方は変なことしてるように見えるけど、これが普通?
http://www.sun-inet.or.jp/~yaneurao/rsp/rspC9toCF.html