プログラム的に、Photoshopでの色相ブレンドはどのように作業しますか?
-
10-12-2019 - |
質問
Photoshopでは、レイヤーのブレンディングモードを「色相」に設定できます。たとえば、青でいっぱいのものがある場合は、下のレイヤーを取り上げて、白い色が存在しないところですべて青になります。
実際に何をしているのか疑問に思います。ピクセルaARRGGBBを持つ背景レイヤとその上のレイヤーがブレンドモード "HUE"に設定され、そのレイヤーにピクセルaARRGGBBがあるように設定されている場合、それらの2つの値はどのようになるのでしょうか。
下のレイヤからRRGGBBを削除するだけではありません。それがしたらそれは白と黒の色と黒です。それはまたカラーバリエーションを通ることはできません。
背景ピクセルが0xFF00FF00の場合、対応する色相レイヤーピクセルが0xFF0000FFの場合、FF BLUEはFF GREENを置き換えるため、終了結果は0xFF0000FFになります。しかし、背景ピクセルが0x55112233で、色相層のピクセルが0xFF0000FFの場合、それはどのように青の色合いを起こしていますか?
私が尋ねる理由は、さまざまな画像を撮り、画像の色相をプログラムでプログラムで変更したいということです。同じ画像の8つの異なるバージョンを異なる色で保存するのではなく、1つの画像を保存し、必要に応じてそれをカラーにしたいと思います。
解決
ここでRGBをHSVに変換するためのアルゴリズムを見つけました。 > http://www.cs.rit.edu/~ncs/color/t_convert..html もちろん、そのページの下部には、JavaカラーオブジェクトがRGBとHSVの間で変換する方法がすでにあることが言及されているので、それを使用しただけです。
他のヒント
私は、JavaScript / Canvasでブレンドモードを複製する方法を調査していますが、「Colorize」フィルタ/ブレンドモードがあります。 (以下の例)
Colorize アルゴリズム:
- RGBからHSLに色を変換します。
- 希望のもの(私の場合は172°または0.477)に色相値を変更します。
- アップデートHSLをRGB に戻します。
注:デスクトップではOKですが、スマートフォンでは著しく遅くなります。
これら3つの画像を比較することで違いを見ることができます。オリジナル:
色付け:
花火の「ブレンド色相」アルゴリズム(私はPhotoshopと同じだと思う):
色素フィルターは良い代替品かもしれません。