/ /スクリプトのための単色画像から16進数のカラーコードを取得するには? - linux、colors、hex、imagemagick、imagemagick-convert

スクリプトのための単色画像から16進数のカラーコードを取得する方法は? - linux、colors、hex、imagemagick、imagemagick-convert

背景を変えるためのスクリプトを書いていた私のLinuxマシンは、単色だけを含む一連のイメージからランダムなイメージに変換します。私がやりたいことは、テキストの色を変更したり、暗い場所から明るい場所に切り替えるなど、特定のアプリケーション(主にターミナルのもの)をテーマにしてこのスクリプトを展開することです。イメージ内の色の16進コードを取得します。私はこれを行うことができますbashの何かはありますか?より堅牢な言語でプログラムを作成し、16進コードを出力する必要がありますか?これを完全に行うためのよりよい方法はありますか?私のこれまでの検索は、少し決まっていません。

回答:

回答№1は1

私は非常に使用することをお勧めします ImageMagick この仕事のために。ザ ドキュメンテーション 画像からデータを抽出する方法について説明します。

「平均色の抽出」から:

画像の平均色は非常にわかります「-scale」を使用して画像を1つのピクセルに縮小することで素早く処理できます。例えば、組み込みの "rose:"画像の平均色です。 FXエスケープフォーマットを使用して色を出力します。 変更せずに直接IMで使用できるカラー文字列を返します。

user@laptop:~$ convert rose: -scale 1x1! -format "%[pixel:s]n" info:-

出力: srgb(146,89,80)

あなたの場合、 rose: あなたの画像ファイルで foo.png.

出力を16進表記で直接入力する場合は、次のようにします。

convert rose: -scale 1x1! -format "%[pixel:s]n" info:- | awk -F "[(,)]" "{printf("#%x%x%xn",$2,$3,$4)}"