web-dev-qa-db-ja.com

色(形の色と背景色)を置き換える方法は?

白い背景を#3D94DB(16進トリプレット表記)に変更し、黒い線を白に変更したいと思います。画像は次のとおりです。

O

これが私が達成したことです:

One

convert input.png +level-colors red, output.png

線の色を赤に変更しました。だから白は簡単です。

どうすれば両方の色を変更できますか?

imagemagick:color_basics からの読み取り

convert balloon.gif   -alpha set  -channel RGBA \
                    -fill none -opaque blue   balloon_none.gif

だからここに私のコードがあります:

 convert input.png +level-colors gray, output.png
 convert output.png -fill "#3D94DB" -opaque white target.png

result

そしてそれを逆さまにすると、結果は恥ずかしいです。

Photoshopの使用は簡単ですが、処理するアイコンがたくさんあります。

より良い解決策を教えていただけますか?

4
dengApro

白い背景を#3D94DB(16進トリプレット表記)に変更し、黒い線を白に変更したいと思います。

すでにお気づきかもしれませんが、実際には、サンプルアイコンの「黒」の線に微妙なグラデーション(黒から白へ)があります(アンチエイリアシングが原因である可能性があります)。アイコンの外観を維持するには、これらをそのままにしておく必要があります。

original icon with gradations

色によるレベル調整 のImagemagick使用ガイドによると、+ level-colorは「黒」と「 「白」の色、および(大まかに)適切な色のグラデーションを与えます。

convert input.png +level-colors white,"#3D94DB" target.png

サンプルアイコンを使用すると、このコマンドは次の結果を生成します。

target icon results - white on blue


警告:

  • 上記のコマンドでは、置換色の順序は黒、次に白です。

  • 置換色の間にスペースを入れないでください。スペースを入れないと、コマンドが失敗します。

  • 目的の効果が与えられると、コマンドは白黒画像に対してのみ機能します。他の色の画像は予期しない結果をもたらします。同様に、カラー画像をグレースケールに変換すると、2色画像が最適に機能します。


7
Anaksunaman