Files
krkr2doc/docs/kr2doc/contents/f_Layer_operateAffine.html
2016-09-08 17:50:19 +09:00

159 lines
15 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<!-- generated by to_html.pl from f_Layer.xml -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>operateAffine - アフィン変換演算合成</title>
<meta name="author" content="W.Dee" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<link href="funcref.css" type="text/css" rel="stylesheet" title="クラスリファレンス用標準スタイル" />
<link href="mailto:[email protected]" rev="Made" />
<link href="index.html" target="_top" rel="Start" title="トップページ" />
<link href="f_Layer.html" title="Layerクラス" rel="Parent" />
</head>
<body>
<h1><span class="fheader"><a name="top" id="top">Layer.operateAffine</a></span></h1><div class="para"><div>
<dl>
<dt>機能/意味</dt>
<dd>
アフィン変換演算合成</dd>
<dt>タイプ</dt>
<dd>
<a class="jump" href="f_Layer.html">Layerクラス</a>のメソッド<br />
</dd>
<dt>構文</dt>
<dd>
<span class="funcdecl">operateAffine(<span class="arg">src</span>, <span class="arg">sleft</span>, <span class="arg">stop</span>, <span class="arg">swidth</span>, <span class="arg">sheight</span>, <span class="arg">affine</span>, <span class="arg">A</span>, <span class="arg">B</span>, <span class="arg">C</span>, <span class="arg">D</span>, <span class="arg">E</span>, <span class="arg">F</span>, <span class="arg">mode</span><span class="defarg">=<span class="defargval">omAuto</span></span>, <span class="arg">opa</span><span class="defarg">=<span class="defargval">255</span></span>, <span class="arg">type</span><span class="defarg">=<span class="defargval">stNearest</span></span>)</span><br />
</dd>
<dt>引数</dt>
<dd>
<table rules="all" frame="box" cellpadding="3" summary="operateAffine の引数">
<tr><td valign="top"><span class="argname">src</span></td>
<td>  重ね合わせ元のレイヤオブジェクトを指定します。<br />
</td></tr>
<tr><td valign="top"><span class="argname">sleft</span></td>
<td>  重ね合わせる矩形の左端位置を ( 重ね合わせ元レイヤの画像位置における ) ピクセル単位で指定します。<br />
</td></tr>
<tr><td valign="top"><span class="argname">stop</span></td>
<td>  重ね合わせる矩形の上端位置を ( 重ね合わせ元レイヤの画像位置における ) ピクセル単位で指定します。<br />
</td></tr>
<tr><td valign="top"><span class="argname">swidth</span></td>
<td>  重ね合わせる矩形の横幅を ( 重ね合わせ元レイヤの画像位置における ) ピクセル単位で指定します。<br />
</td></tr>
<tr><td valign="top"><span class="argname">sheight</span></td>
<td>  重ね合わせる矩形の縦幅を ( 重ね合わせ元レイヤの画像位置における ) ピクセル単位で指定します。<br />
</td></tr>
<tr><td valign="top"><span class="argname">affine</span></td>
<td>  続く6つの引数 (A ~ F パラメータ)をどのように扱うかを指定します。<br />
 真を指定すると、6つのパラメータはそれぞれ以下のように解釈されます。<br />
<span class="script">A : 2Dアフィン変換行列の a</span><br />
<span class="script">B : 2Dアフィン変換行列の b</span><br />
<span class="script">C : 2Dアフィン変換行列の c</span><br />
<span class="script">D : 2Dアフィン変換行列の d</span><br />
<span class="script">E : 2Dアフィン変換行列の tx</span><br />
<span class="script">F : 2Dアフィン変換行列の ty</span><br />
<br />
 アフィン変換により、重ね合わせ元の画像位置 (x, y) ( ただし、重ね合わせ元矩形の左上隅を (0, 0) とする ) は以下の式により、重ね合わせ先の画像位置 (x', y')に変換されます。<br />
x' = a*x + c*y + tx<br />
y' = b*x + d*y + ty<br />
<br />
 偽を指定すると、6つのパラメータはそれぞれ以下のように解釈されます。<br />
<span class="script">A : コピー元矩形の左上隅の点の、コピー先での画像位置における X 座標位置(x0)</span><br />
<span class="script">B : コピー元矩形の左上隅の点の、コピー先での画像位置における Y 座標位置(y0)</span><br />
<span class="script">C : コピー元矩形の右上隅の点の、コピー先での画像位置における X 座標位置(x1)</span><br />
<span class="script">D : コピー元矩形の右上隅の点の、コピー先での画像位置における Y 座標位置(y1)</span><br />
<span class="script">E : コピー元矩形の左下隅の点の、コピー先での画像位置における X 座標位置(x2)</span><br />
<span class="script">F : コピー元矩形の左下隅の点の、コピー先での画像位置における Y 座標位置(y2)</span><br />
<br />
 偽を指定した場合、重ね合わせ元の右下隅に対応する、重ね合わせ先位置(x3, y3)は自動的に以下の式によって計算されます。<br />
x3 = x1 - x0 + x2<br />
y3 = y1 - y0 + y2<br />
</td></tr>
<tr><td valign="top"><span class="argname">A</span></td>
<td>  A パラメータです。affine 引数によって解釈が変わります。<br />
</td></tr>
<tr><td valign="top"><span class="argname">B</span></td>
<td>  B パラメータです。affine 引数によって解釈が変わります。<br />
</td></tr>
<tr><td valign="top"><span class="argname">C</span></td>
<td>  C パラメータです。affine 引数によって解釈が変わります。<br />
</td></tr>
<tr><td valign="top"><span class="argname">D</span></td>
<td>  D パラメータです。affine 引数によって解釈が変わります。<br />
</td></tr>
<tr><td valign="top"><span class="argname">E</span></td>
<td>  E パラメータです。affine 引数によって解釈が変わります。<br />
</td></tr>
<tr><td valign="top"><span class="argname">F</span></td>
<td>  F パラメータです。affine 引数によって解釈が変わります。<br />
</td></tr>
<tr><td valign="top"><span class="argname">mode</span></td>
<td>  演算のモードを指定します。<br />
<span class="script"><a class="targanchor" name="id202" id="id202">omAuto</a></span> が指定された場合は演算元レイヤの<a class="jump" href="f_Layer_type.html">Layer.type</a>プロパティに従って演算の種類が自動的に決定されます。<br />
<span class="script"><a class="targanchor" name="id203" id="id203">omPsNormal</a></span> が指定された場合はPhotoshop互換のアルファ合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id204" id="id204">omPsAdditive</a></span> が指定された場合はPhotoshop互換の覆い焼き(リニア)合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id205" id="id205">omPsSubtractive</a></span> が指定された場合はPhotoshop互換の焼き込み(リニア)合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id206" id="id206">omPsMultiplicative</a></span> が指定された場合はPhotoshop互換の乗算合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id207" id="id207">omPsScreen</a></span> が指定された場合はPhotoshop互換のスクリーン合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id208" id="id208">omPsOverlay</a></span> が指定された場合はPhotoshop互換のオーバーレイ合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id209" id="id209">omPsHardLight</a></span> が指定された場合はPhotoshop互換のハードライト合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id210" id="id210">omPsSoftLight</a></span> が指定された場合はPhotoshop互換のソフトライト合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id211" id="id211">omPsColorDodge</a></span> が指定された場合はPhotoshop互換の覆い焼きカラー合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id212" id="id212">omPsColorDodge5</a></span> が指定された場合はPhotoshopのバージョン5.x 以下と互換の覆い焼きカラー合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id213" id="id213">omPsColorBurn</a></span> が指定された場合はPhotoshop互換の焼き込みカラー合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id214" id="id214">omPsLighten</a></span> が指定された場合はPhotoshop互換の比較(明)合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id215" id="id215">omPsDarken</a></span> が指定された場合はPhotoshop互換の比較(暗)合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id216" id="id216">omPsDifference</a></span> が指定された場合はPhotoshop互換の差の絶対値合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id217" id="id217">omPsDifference5</a></span> が指定された場合はPhotoshopのバージョン 5.x 以下と互換の差の絶対値合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id218" id="id218">omPsExclusion</a></span> が指定された場合はPhotoshop互換の除外合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id219" id="id219">omAdditive</a></span> が指定された場合は加算合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id220" id="id220">omSubtractive</a></span> が指定された場合は減算合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id221" id="id221">omMultiplicative</a></span> が指定された場合は乗算合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id222" id="id222">omDodge</a></span> が指定された場合は覆い焼き合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id223" id="id223">omDarken</a></span> が指定された場合は比較(暗)合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id224" id="id224">omLighten</a></span> が指定された場合は比較(明)合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id225" id="id225">omScreen</a></span> が指定された場合はスクリーン乗算合成が行われます(現バージョンでは未実装です)。<br />
<span class="script"><a class="targanchor" name="id226" id="id226">omAlpha</a></span> が指定された場合はアルファ合成が行われます。<br />
<span class="script"><a class="targanchor" name="id227" id="id227">omAddAlpha</a></span> が指定された場合は加算アルファ合成が行われます。この場合は、転送先の <a class="jump" href="f_Layer_face.html">Layer.face</a> プロパティが dfOpaque かつ <a class="jump" href="f_Layer_holdAlpha.html">Layer.holdAlpha</a> プロパティが偽のとき、type 引数に stFastLinear を指定することにより線形補間が可能です。<br />
<span class="script"><a class="targanchor" name="id228" id="id228">omOpaque</a></span> が指定された場合は src のアルファ情報は無視され、src は常に完全不透明であると見なされます。この場合は、転送先の <a class="jump" href="f_Layer_face.html">Layer.face</a> プロパティが dfOpaque かつ <a class="jump" href="f_Layer_holdAlpha.html">Layer.holdAlpha</a> プロパティが偽のとき、type 引数に stFastLinear を指定することにより線形補間が可能です。<br />
</td></tr>
<tr><td valign="top"><span class="argname">opa</span></td>
<td>  重ね合わせの不透明度 ( 0 ~ 255 ) を指定します。<br />
</td></tr>
<tr><td valign="top"><span class="argname">type</span></td>
<td>  アフィン変換のタイプを指定します。<br />
<span class="script"><a class="targanchor" name="id229" id="id229">stNearest</a> </span> : 最近傍点法が用いられます<br />
<span class="script"><a class="targanchor" name="id230" id="id230">stFastLinear</a> </span> : 低精度の線形補間が用いられます(一部実装)<br />
<span class="script"><a class="targanchor" name="id231" id="id231">stLinear</a> </span> : 線形補間が用いられます(未実装)<br />
<span class="script"><a class="targanchor" name="id232" id="id232">stCubic</a> </span> : 3次元補間が用いられます(未実装)<br />
 速度は stNearest &gt; stFastLinear &gt; stLinear &gt; stCubic の順に高速ですが、画質は速度が
速ければ速いモードほど低画質になります。<br />
 stFastLinear や stLinear, stCubic に対しては、stRefNoClip をビット論理和で追加指定
することができ、この場合は、コピーするビットマップの領域外を参照して色を合成することを
許可します。これを指定しない場合は、転送元ビットマップの周囲に余裕があったとしても、
転送元ビットマップの範囲外を参照することはありません(範囲外の色はもっとも近い位置にある
範囲内のピクセルの色と見なされます)。<br />
</td></tr>
</table>
</dd>
<dt>戻り値</dt>
<dd>
なし (void)<br />
</dd>
<dt>説明</dt>
<dd>
 指定された重ね合わせ元レイヤの矩形を、重ね合わせ先 ( メソッドを実行するレイヤ ) に
アフィン変換を行いながら演算合成します。<br />
 アフィン変換については <a class="jump" href="f_Layer_affineCopy.html">Layer.affineCopy</a> も参照してください。<br />
 mode に omAuto を指定した場合は、演算元レイヤの<a class="jump" href="f_Layer_type.html">Layer.type</a>プロパティに従って演算の種類が自動的に決定されます。<br />
</dd>
</dl>
</div></div>
<script type="text/javascript" charset="UTF-8" src="documentid.js" ></script>
<script type="text/javascript" charset="UTF-8" src="postcontent.js" ></script>
</body>
</html>