カラーマトリックス コピーモードを設定
alCopyModeColorMatrix arr
arr : カラーマトリックス (行列) を表す配列
(プラグイン / モジュール : Artlet2D)
画像コピー時にカラーマトリックス (行列) 変換を行うように設定します。 引数 arr は、カラーマトリックスを表す double 型の 1 次元配列で、 arr = m00,m01,m02,m03,m04, m10,m11,m12,m13,m14, m20,m21,m22,m23,m24, m30,m31,m32,m33,m34 となる値を指定します。それぞれの配列要素 (行列要素) は、コピー元の色 (R G B A) を下記のように変換してをコピー先の色 (R' G' B' A') へ出力することを示します。 R' = m00 * R + m01 * G + m02 * B + m03 * A + m04 G' = m10 * R + m11 * G + m12 * B + m13 * A + m14 B' = m20 * R + m21 * G + m22 * B + m23 * A + m24 A' = m30 * R + m31 * G + m32 * B + m33 * A + m34 それぞれの要素は、最大輝度を 1.0 とする値で記述します。 引数配列は、モジュールに内蔵のマクロ MAT_R, MAT_G, MAT_B, MAT_A (= 0, 5, 10, 15) を使用して以下のように記述するとコードが見やすくなります。 cmatrix(MAT_R) = m00, m01, m02, m03, m04 cmatrix(MAT_G) = m10, m11, m12, m13, m14 cmatrix(MAT_B) = m20, m21, m22, m23, m24 cmatrix(MAT_A) = m30, m31, m32, m33, m34 alCopyModeColorMatrix cmatrix マラーマトリックスを用いると、画像の明るさの調整、ネガポジ反転、半透明化、グレースケール変換、セピア色変換、RGB 交換、アルファチャネルのグレースケール画像化など、さまざまな効果を得ることができます。 (マトリックスの作成例) ; 無変換 (基本) cmatrix(MAT_R) = 1.0, 0.0, 0.0, 0.0, 0.0 cmatrix(MAT_G) = 0.0, 1.0, 0.0, 0.0, 0.0 cmatrix(MAT_B) = 0.0, 0.0, 1.0, 0.0, 0.0 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 1.0, 0.0 ; 全体を明るくする cmatrix(MAT_R) = 1.0, 0.0, 0.0, 0.0, 0.2 cmatrix(MAT_G) = 0.0, 1.0, 0.0, 0.0, 0.2 cmatrix(MAT_B) = 0.0, 0.0, 1.0, 0.0, 0.2 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 1.0, 0.2 ; 全体を暗くする cmatrix(MAT_R) = 1.0, 0.0, 0.0, 0.0, -0.2 cmatrix(MAT_G) = 0.0, 1.0, 0.0, 0.0, -0.2 cmatrix(MAT_B) = 0.0, 0.0, 1.0, 0.0, -0.2 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 1.0, -0.2 ; 半透明でコピーする cmatrix(MAT_R) = 1.0, 0.0, 0.0, 0.0, 0.0 cmatrix(MAT_G) = 0.0, 1.0, 0.0, 0.0, 0.0 cmatrix(MAT_B) = 0.0, 0.0, 1.0, 0.0, 0.0 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 0.5, 0.0 ; グレースケールに変換 cmatrix(MAT_R) = 0.299, 0.587, 0.114, 0.0, 0.0 cmatrix(MAT_G) = 0.299, 0.587, 0.114, 0.0, 0.0 cmatrix(MAT_B) = 0.299, 0.587, 0.114, 0.0, 0.0 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 1.0, 0.0 ; セピア色に変換 cmatrix(MAT_R) = 0.393, 0.769, 0.189, 0.0, 0.0 cmatrix(MAT_G) = 0.349, 0.686, 0.168, 0.0, 0.0 cmatrix(MAT_B) = 0.272, 0.534, 0.131, 0.0, 0.0 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 1.0, 0.0 ; ネガポジ反転 cmatrix(MAT_R) = -1.0, 0.0, 0.0, 0.0, 0.0 cmatrix(MAT_G) = 0.0, -1.0, 0.0, 0.0, 0.0 cmatrix(MAT_B) = 0.0, 0.0, -1.0, 0.0, 0.0 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 1.0, 0.0 ; アルファチャネルをグレースケールに変換 cmatrix(MAT_R) = 0.0, 0.0, 0.0, 1.0, 0.0 cmatrix(MAT_G) = 0.0, 0.0, 0.0, 1.0, 0.0 cmatrix(MAT_B) = 0.0, 0.0, 0.0, 1.0, 0.0 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 0.0, 1.0 カラーマトリックス コピーモードは、下記の命令に適用されます。 alCopyImageToImage alCopyImageToScreen alCopyScreenToImage alStretchImageToImage alStretchImageToScreen alStretchScreenToImage 目的の処理が完了したら、alResetCopyMode 命令でデフォルトのコピーモードに戻すことができます。 コピーモードは、描画先の HSP Screen ID, 仮想イメージ ID を問わずに適用されます。
alResetCopyMode | コピーモードをリセット | (Artlet2D) |
プラグイン / モジュール | Artlet2D |
バージョン | 1.01 R3.1 |
作成日 | 2018/06/16 |
著作者 | s.programs |
URL | http://spn.php.xdomain.jp/ |
備考 | a2d.hsp をインクルードしてください。 |
タイプ | ユーザー拡張命令 |
グループ | コピーモード |
対応環境 |
|
移植のヒント | Windows XP 以降の環境が必要です。 |
hs ファイル | doclib\Artlet2D\a2dhelp.hs |