2

Photoshopでは、レイヤーのブレンドモードを「色相」に設定できます。たとえば、そのレイヤーが青で塗りつぶされている場合、下のレイヤーが取得され、白っぽくない色が存在する場合はすべて青になります。

私はそれが実際に何をしているのか疑問に思っています。ピクセルaarrggbbのある背景レイヤーがあり、その上のレイヤーがブレンドモード「色相」に設定されていて、そのレイヤーにピクセルaarrggbbがある場合、これら2つの値をどのように組み合わせて、表示される結果が得られますか?

下のレイヤーからrrggbbをドロップするだけではありません。もしそうなら、それは白と黒にもなります。また、カラーバリエーションを通過させることもできません。

背景ピクセルが0xff00ff00で、対応する色相レイヤーピクセルが0xff0000ffの場合、ff青がff緑に置き換わるため、最終結果は0xff0000ffになると想定しています。しかし、背景ピクセルが0x55112233で、色相レイヤーピクセルが0xff0000ffの場合、どのようにして思いついた青の色合いを思い付くのでしょうか。

私が尋ねる理由は、さまざまな画像を撮り、アプリでプログラムによって画像の色相を変更したいからです。同じ画像の8つの異なるバージョンを異なる色で保存するのではなく、1つの画像を保存して、必要に応じて色を付けたいと思います。

4

2 に答える 2

0

javascript/canvas でそのブレンド モードを複製する方法を研究してきましたが、「カラー化」フィルター/ブレンド モードしか思いつきませんでした。(以下の例)

色付けアルゴリズム:

  1. 色を RGB から HSL に変換します。
  2. 色相の値を必要な値に変更します (私の場合は 172⁰ または 0.477)。
  3. 更新 HSL を RGB に戻す

注: これはデスクトップでは問題ありませんが、スマートフォンでは著しく遅いことがわかりました。

この 3 つの画像を比較すると、違いがわかります。オリジナル:

元の画像

色付け:

私のアルゴリズムで結果

Fireworks の「色相のブレンド」アルゴリズム (Photoshop のものと同じだと思います):

花火

colorize フィルターは良い代用品かもしれません。

RGB/HSL 変換の質問

ウィキペディアの色相/彩度と HSL

于 2013-01-21T02:35:49.100 に答える
0

ここで RGB を HSV に変換するアルゴリズムを見つけました: http://www.cs.rit.edu/~ncs/color/t_convert.html

もちろん、そのページの下部には、Java Color オブジェクトには RGB と HSV の間で変換するためのメソッドが既にあると記載されているので、それを使用しました。

于 2012-06-20T06:06:17.970 に答える