CUI ツールを作成して、Photoshop の HSL ベースのブレンド モード (色/色相/彩度/明度) を置き換えたいだけです。RMagick を介して実行できればより良いでしょう。
ImageMagick は HSL 色空間を管理できますが、ImageMagick の複合演算子 Colorize/Hue/Saturation/Luminize は HSB 色空間に基づくようにハードコードされています。
ピクセルごとの処理コードを書かずに回避策はありますか? ありがとう。
CUI ツールを作成して、Photoshop の HSL ベースのブレンド モード (色/色相/彩度/明度) を置き換えたいだけです。RMagick を介して実行できればより良いでしょう。
ImageMagick は HSL 色空間を管理できますが、ImageMagick の複合演算子 Colorize/Hue/Saturation/Luminize は HSB 色空間に基づくようにハードコードされています。
ピクセルごとの処理コードを書かずに回避策はありますか? ありがとう。
私は分離と結合のアプローチを試みました。それから物語が始まりました。
ImageMagick-6.6.9-7 には、rgb<->hsl 計算に関する特定のバグがあります。Ubuntu 12.04 LTS のパッケージ リポジトリはそれを提供します... grrrr (ImageMagick 自体、r4431 で修正され、>= 6.6.9-9 で良好)
次に、座って計算を行い、単純な -fx 式を取得します。
colorize_hsl.fx:
ul = u.lightness; vl = v.lightness;
bias = (ul < .5 ? ul : 1 - ul)/(vl < .5 ? vl : 1 - vl);
(v - vl)*bias + ul
これは、新しい明度を設定し、その色相と彩度を保持する RGB ベースの式です。luminize_hsl を取得するには、u と v を交換します。
一時変数 (ul、vl、およびバイアス) はすべてのチャネルで共通ですが、-fx エンジンはそれを 3 回試行する可能性があります。足りません...