(5/13追記あり)

canvas(HTML5)のglobalCompositeOperationがどういう計算をしているか気になったので調べた。

以下は、webkitのソースをGoogleコードサーチで検索した結果。

globalCompositeOperationはCanvasRenderingContext2D#setGlobalCompositeOperationで実装されていると思われる。ここからGraphicsContext#setCompositeOperationが呼ばれているが、GraphicsContextは各プラットフォーム毎に実装されるものらしく#if PLATFORM(xxx)が沢山並ぶなんとも面倒そうな感じ。とりあえずAndroidで使われているskiaというライブラリを使う実装を見るとglobalCompositeOperationの値とskiaの合成モードの変換表とskiaの合成モードでの変換式をコメント中に発見

きれいに整形したり、転載するのはめんどうなので、知りたい方は上記リンクを確認してください。
続きを読む