レイヤー合成モードのテスタープログラム(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様

以下のサイトを参考にさせて頂きました。


WEBSITE