Processing

PythonでProcessing Image Pixels blend()

アルファチャンネルをサポートし、あるイメージのピクセル領域を別のイメージに(またはそれ自体に)ブレンドする。ソースのピクセル(A)とデスティネーションイメージのピクセル(B)をブレンドするために、以下のモードがある。

BLEND – 色の線形補間を行う。C = A*factor + B
ADD – ホワイトクリップを使った加法混色。C = min(A*factor + B, 255)
SUBTRACT – ブラッククリップを使った減算法によるブレンド。C = max(B – A*factor, 0)
DARKEST – 最も暗い色のみ。C = min(A*factor, B)
LIGHTEST – 最も明るい色のみ。 C = max(A*factor, B)
DIFFERENCE – 下の画像から色の差分。
EXCLUSION – DIFFERENCEと似ているが、そこまで極端ではない。
MULTIPLY – 色を乗算する。結果は常に暗くなる。
SCREEN(スクリーン) – 乗算の反対で、色の逆の値を使用する。
OVERLAY – MULTIPLYとSCREENのミックス。暗い値を乗算し、明るい値をスクリーンする。
HARD_LIGHT – 50%グレーより大きい場合はSCREEN、小さい場合はMULTIPLY。
SOFT_LIGHT – DARKESTとLIGHTESTのミックス。OVERLAYのように動作するが、それほどきつくない。
DODGE – 明るいトーンを明るくしてコントラストを上げ、暗いトーンは無視する。IllustratorやPhotoshopでは「カラードッジ」と呼ばれている。
BURN – 明るい部分を無視して暗い部分を適用し、コントラストを高める。IllustratorとPhotoshopでは「カラーバーン」と呼ばれている。

すべてのモードでは、ソースイメージのピクセルのアルファ情報(最上位バイト)をブレンドファクターとして使用する。ソース領域とデスティネーション領域のサイズが異なる場合、イメージはデスティネーションのサイズに合わせて自動的にリサイズされる。srcImg パラメーターが使用されていない場合は、ディスプレイウィンドウがソースイメージとして使用される。

※リリース0149では、この関数はimageMode()を無視する。

# 構文
#   blend(sx, sy, sw, sh, dx, dy, dw, dh, mode)
#   blend(src, sx, sy, sw, sh, dx, dy, dw, dh, mode)
#   
# パラメータ
#   src PImage: ソース画像を参照するイメージ変数
#   sx int: ソース画像の左上隅のX座標
#   sy int: ソース画像の左上隅のY座標
#   sw int: ソース画像の幅
#   sh int: ソース画像の高さ
#   dx int: 描画先の左上角のX座標
#   dy int: 目的地の左上角のY座標
#   dw int: 出力画像の幅
#   dh int: 出力画像の高さ#   mode  int: BLEND, ADD, SUBTRACT, LIGHTEST, DARKEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, BURN