レイヤー合成モードのテスタープログラム(Java Swing)
CLIP STUDIO PAINTやPhotoshopに実装されている機能であるレイヤー合成(描画)モードを再現するプログラムを作成しました。
実装した合成モードは以下のようになっています。
通常・比較(暗)・乗算・焼き込みカラー・焼き込み(リニア)・減算・比較(明)・スクリーン・覆い焼きカラー・加算・オーバーレイ・ハードライト・差の絶対値・ハードミックス・カラー比較(暗)・カラー比較(明)・除算
一方、実装できなかったモードは以下になります
覆い焼き(発光)・加算(発光)・ソフトライト・ビビッドライト・リニアライト・ピンライト・HLS式空間系(色相・彩度・カラー・輝度)
今後、これらの合成モードの仕組みを理解し実装したいと考えています。
また、Java Swingを用い、結果が画面上ですぐに確かめられるようにしています。
Java Swingによる実際の画面↓
※実際のプログラムでは、"done"のボタンを押す毎に画像が生成されますが、1回押す毎に1画像が生成されるため、画像の多量生成をしないようソースコードでは5回までの制限を掛けています。改良案を模索中です。
ソースコードへのリンク↓
以下は実行結果の例です。
R : 0 G : 255 B : 255 不透明度 : 50 (%) 合成モード : 乗算 の場合
R : 255 G : 127 B : 127 不透明度 : 50 (%) 合成モード : スクリーン の場合
※画像 : pixabay様
以下のサイトを参考にさせて頂きました。