:私はPHPを使用して
そこに行くことができます。だから、
、私たちはあなたのものと推定左側にマゼンタの色合いと右にいくつかの試験色を含む開始画像、作る場合:
convert -size 256x256 gradient:black-magenta -size 50x256 \
xc:black xc:white xc:red xc:lime xc:blue +append start.png

をそして、あなたはマゼンタの色合いを変更したいです青に。私は、色相変調いることを呼ぶだろうので、私は青とマゼンタの間の色相角を見つけるしたいので、私は1つのマゼンタと1つの青色画素と2x1のイメージを作成し、そのHSI値を得るでしょう:
convert xc:magenta xc:blue -append -colorspace hsi txt:
出力
# ImageMagick pixel enumeration: 1,2,65535,hsi
0,0: (54612.5,65535,43690) #D555FFFFAAAA hsi(300,100%,66.6667%)
0,1: (43690,65535,21845) #AAAAFFFF5555 hsi(240,100%,33.3333%)
そして、私は彼らの色相が60度離れて(300から240)です見ることができます。だから私は明る、彩度と色相をとる-modulate
演算子を使用し、100%の最初の二つ変わらずを残して、60度色相を変更します。
convert start.png -modulate 100,100,60 result.png

多分それはあなたが意味するものではありませんか?たぶん、特定の色にのみ影響することを意味します。もしそうなら、それはファイルを分離するために、色相、彩度、明度層を抽出し、
まず:-)ないという難しい...難しくなりますが、:
convert start.png -colorspace HSL -separate -colorspace gray HSL-%d.png
シングルとして私たちに色相を与えることHSL-0.png
、彩度はHSL-1.png
、明るさはHSL-2.png
です。
ここで、色相チャンネル用の新しいLUT(ルックアップテーブル)を作成したいので、1:1をマッピングする360ピクセルのLUTを作成します。つまり、すべてが標準にマッピングされます。
convert -size 1x360 gradient: -rotate 90 greyscale.png

その後、我々は、マゼンタ(300)の周りに検索してDINKと(240)、それらが青にしたいです。だから我々は、範囲280から320のすべての画素から(あなたは0〜1の範囲に0から360度をスケーリング場合は0.16である)60度を減算したいので、いくつかの公差があります:
convert -size 1x360 gradient: -rotate 90 -colorspace gray -fx "i<280||i>320?u:u-0.16" hueCLUT.png

今シンプルなスクリプトとして、それがBECOかもしれない、だから... ...
convert HSL-0.png -colorspace gray hueCLUT.png -clut HSL-1.png HSL-2.png -set colorspace HSL -combine -colorspace RGB result.png

を元の画像の色相にそのLUTを適用し、それを再構築私:
#!/bin/bash
# Make a hue CLUT, transforming magenta hues to blue
convert -size 1x360 gradient: -rotate 90 -colorspace gray -fx "i<295||i>305?u:u-0.16" -resize 256x1! hueclut.png
# Apply to the hue channel
convert start.png -colorspace HSL -write MPR:HSL \
-channel R -separate hueclut.png -clut \
\(MPR:HSL -channel G -separate \) \
\(MPR:HSL -channel B -separate \) \
-set colorspace HSL -combine -colorspace RGB result.png
これは現在の形では非常に不明瞭です。これらの色だけを変更したくないのですが、似たようなものも正しいですか?あなたは、あなたが望むものの例と、IMがあなたが望んでいることをしていない方法を示すことができますか? –
画像を変更することについて投稿するときに画像を投稿するのがなぜ私には起こらなかったのか分かりませんが、回答は完全です、提案のおかげで;) –