ImageFunction.operateAffine

機能/意味

アフィン変換演算合成

タイプ
ImageFunctionクラスのメソッド
構文
operateAffine(dst, src, A, B, C, D, E, F, srcrect=null, cliprect=null, affine, mode=omAlpha, face=dfAlpha, opa=255, type=stNearest, hda=false)
引数
dst

重ね合わせ先の Bitmap オブジェクトを指定します。

src

重ね合わせ元の Bitmap オブジェクトを指定します。

A

A パラメータです。affine 引数によって解釈が変わります。

B

B パラメータです。affine 引数によって解釈が変わります。

C

C パラメータです。affine 引数によって解釈が変わります。

D

D パラメータです。affine 引数によって解釈が変わります。

E

E パラメータです。affine 引数によって解釈が変わります。

F

F パラメータです。affine 引数によって解釈が変わります。

srcrect

重ね合わせる矩形を ( 重ね合わせ元 Bitmap の画像位置における ) ピクセル単位で Rect オブジェクトで指定します。
未指定時全体が対象となります。

cliprect

クリッピング矩形を ( 重ね合わせ先 Bitmap の画像位置における ) Rect オブジェクトで指定します。
未指定時クリッピングは行われません。

affine

続く6つの引数 (A ~ F パラメータ)をどのように扱うかを指定します。
真を指定すると、6つのパラメータはそれぞれ以下のように解釈されます。
A : 2Dアフィン変換行列の a
B : 2Dアフィン変換行列の b
C : 2Dアフィン変換行列の c
D : 2Dアフィン変換行列の d
E : 2Dアフィン変換行列の tx
F : 2Dアフィン変換行列の ty
アフィン変換により、重ね合わせ元の画像位置 (x, y) ( ただし、重ね合わせ元矩形の左上隅を (0, 0) とする ) は以下の式により、重ね合わせ先の画像位置 (x', y')に変換されます。
x' = ax + cy + txy' = bx + dy + ty
偽を指定すると、6つのパラメータはそれぞれ以下のように解釈されます。
A : コピー元矩形の左上隅の点の、コピー先での画像位置における X 座標位置(x0)
B : コピー元矩形の左上隅の点の、コピー先での画像位置における Y 座標位置(y0)
C : コピー元矩形の右上隅の点の、コピー先での画像位置における X 座標位置(x1)
D : コピー元矩形の右上隅の点の、コピー先での画像位置における Y 座標位置(y1)
E : コピー元矩形の左下隅の点の、コピー先での画像位置における X 座標位置(x2)
F : コピー元矩形の左下隅の点の、コピー先での画像位置における Y 座標位置(y2)
偽を指定した場合、重ね合わせ元の右下隅に対応する、重ね合わせ先位置(x3, y3)は自動的に以下の式によって計算されます。
x3 = x1 - x0 + x2y3 = y1 - y0 + y2

mode

演算のモードを指定します。

  • omPsNormal が指定された場合はPhotoshop互換のアルファ合成が行われます(現バージョンでは未実装です)。
  • omPsAdditive が指定された場合はPhotoshop互換の覆い焼き(リニア)合成が行われます(現バージョンでは未実装です)。
  • omPsSubtractive が指定された場合はPhotoshop互換の焼き込み(リニア)合成が行われます(現バージョンでは未実装です)。
  • omPsMultiplicative が指定された場合はPhotoshop互換の乗算合成が行われます(現バージョンでは未実装です)。
  • omPsScreen が指定された場合はPhotoshop互換のスクリーン合成が行われます(現バージョンでは未実装です)。
  • omPsOverlay が指定された場合はPhotoshop互換のオーバーレイ合成が行われます(現バージョンでは未実装です)。
  • omPsHardLight が指定された場合はPhotoshop互換のハードライト合成が行われます(現バージョンでは未実装です)。
  • omPsSoftLight が指定された場合はPhotoshop互換のソフトライト合成が行われます(現バージョンでは未実装です)。
  • omPsColorDodge が指定された場合はPhotoshop互換の覆い焼きカラー合成が行われます(現バージョンでは未実装です)。
  • omPsColorDodge5 が指定された場合はPhotoshopのバージョン5.x 以下と互換の覆い焼きカラー合成が行われます(現バージョンでは未実装です)。
  • omPsColorBurn が指定された場合はPhotoshop互換の焼き込みカラー合成が行われます(現バージョンでは未実装です)。
  • omPsLighten が指定された場合はPhotoshop互換の比較(明)合成が行われます(現バージョンでは未実装です)。
  • omPsDarken が指定された場合はPhotoshop互換の比較(暗)合成が行われます(現バージョンでは未実装です)。
  • omPsDifference が指定された場合はPhotoshop互換の差の絶対値合成が行われます(現バージョンでは未実装です)。
  • omPsDifference5 が指定された場合はPhotoshopのバージョン 5.x 以下と互換の差の絶対値合成が行われます(現バージョンでは未実装です)。
  • omPsExclusion が指定された場合はPhotoshop互換の除外合成が行われます(現バージョンでは未実装です)。
  • omAdditive が指定された場合は加算合成が行われます(現バージョンでは未実装です)。
  • omSubtractive が指定された場合は減算合成が行われます(現バージョンでは未実装です)。
  • omMultiplicative が指定された場合は乗算合成が行われます(現バージョンでは未実装です)。
  • omDodge が指定された場合は覆い焼き合成が行われます(現バージョンでは未実装です)。
  • omDarken が指定された場合は比較(暗)合成が行われます(現バージョンでは未実装です)。
  • omLighten が指定された場合は比較(明)合成が行われます(現バージョンでは未実装です)。
  • omScreen が指定された場合はスクリーン乗算合成が行われます(現バージョンでは未実装です)。
  • omAlpha が指定された場合はアルファ合成が行われます。
  • omAddAlpha が指定された場合は加算アルファ合成が行われます。この場合は、face が dfOpaque かつ hda が偽のとき、type 引数に stFastLinear を指定することにより線形補間が可能です。
  • omOpaque が指定された場合は src のアルファ情報は無視され、src は常に完全不透明であると見なされます。この場合は、face が dfOpaque かつ hda が偽のとき、type 引数に stFastLinear を指定することにより線形補間が可能です。
face

描画方式を指定します。

  • dfAlpha が指定された場合は画像はアルファチャンネルつき画像と見なされ、描画されます。
  • dfAddAlpha が指定された場合は画像は加算アルファチャンネルつき画像として見なされ、描画されます。
  • dfOpaque が指定された場合は画像はすべて完全不透明であると見なされ、描画されます。
opa

重ね合わせの不透明度 ( 0 ~ 255 ) を指定します。

type

アフィン変換のタイプを指定します。

  • stNearest : 最近傍点法が用いられます
  • stFastLinear : 低精度の線形補間が用いられます(一部実装)
  • stLinear : 線形補間が用いられます(未実装)
  • stCubic : 3次元補間が用いられます(未実装)

速度は stNearest > stFastLinear > stLinear > stCubic の順に高速ですが、画質は速度が速ければ速いモードほど低画質になります。
stFastLinear や stLinear, stCubic に対しては、stRefNoClip をビット論理和で追加指定することができ、この場合は、コピーするビットマップの領域外を参照して色を合成することを許可します。
これを指定しない場合は、転送元ビットマップの周囲に余裕があったとしても、転送元ビットマップの範囲外を参照することはありません(範囲外の色はもっとも近い位置にある範囲内のピクセルの色と見なされます)。

hda

アルファチャンネルを保護するかどうかを指定します。

戻り値
なし (void)
説明

指定された重ね合わせ元 Bitmap の矩形を、重ね合わせ先にアフィン変換を行いながら演算合成します。