0

Imagemagickを使用して、多くの画像の色情報を取得し、これを(できれば単一のtxtファイルに)エクスポートしようとしています。具体的には、各色のピクセル数を探しています。私が使用する単一の画像の場合:

convert image.png -format %c histogram:info:result.txt

それは私に必要なものを与えてくれます。以下を含むテキスト ファイル:

 38775: (  0,255,  0) #00FF00 lime
   523: (255,  0,  0) #FF0000 red
 11756: (255,255,  0) #FFFF00 yellow
236946: (255,255,255) #FFFFFF white

私は使用しているすべての画像に対してこれを実行しようとしましたmogrifyが、運がありませんでした。前述したように、すべての情報を 1 つのファイルで取得するのが理想的ですが、それぞれの情報を含む個別のファイルも優れています。

4

1 に答える 1

1

あなたが何をしようとしているのか、何がポイントなのかわかりませんし、なぜあなたがそれmogrifyを達成するために熱心に使用するのか理解できません... しかし、いくつかの画像を作成して、それらに何が含まれているかを伝えることができます:

convert -size 10x10 xc:blue blue.png
convert -size 10x10 xc:red  red.png
convert -size 50x50 gradient:yellow-cyan -colors 8 mad.png

ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

だから、ここにいる:

convert red.png blue.png mad.png -depth 8 -format "%c" histogram:info:
       100: (255,  0,  0) #FF0000 red
       100: (  0,  0,255) #0000FF blue
       606: ( 33,255,222) #21FFDE srgb(33,255,222)
       613: ( 94,255,161) #5EFFA1 srgb(94,255,161)
         1: (128,255,128) #80FF80 srgb(128,255,128)
       641: (161,255, 94) #A1FF5E srgb(161,255,94)
       639: (224,255, 31) #E0FF1F srgb(224,255,31)

または、ファイル名も:

convert red.png blue.png mad.png -format "%f:%c" histogram:info:

red.png:       100: (255,  0,  0) #FF0000 red
blue.png:       100: (  0,  0,255) #0000FF blue
mad.png:       606: ( 8520,65535,57016) #2148FFFFDEB8 srgb(13%,100%,87%)
       613: (24248,65535,41287) #5EB8FFFFA147 srgb(37%,100%,63%)
         1: (32768,65535,32768) #8000FFFF8000 srgb(50%,100%,50%)
       641: (41287,65535,24248) #A147FFFF5EB8 srgb(63%,100%,37%)
       639: (57671,65535, 7864) #E147FFFF1EB8 srgb(88%,100%,12%)

または、各セクションの先頭にファイル名を付けて:

convert red.png blue.png mad.png -format "%f\n%c" histogram:info:

red.png
         1: (255,  0,  0) #FF0000 red
blue.png
         1: (255,  0,  0) #FF0000 red
mad.png
       606: ( 8520,65535,57016) #2148FFFFDEB8 srgb(13%,100%,87%)
       613: (24248,65535,41287) #5EB8FFFFA147 srgb(37%,100%,63%)
         1: (32768,65535,32768) #8000FFFF8000 srgb(50%,100%,50%)
       641: (41287,65535,24248) #A147FFFF5EB8 srgb(63%,100%,37%)
       639: (57671,65535, 7864) #E147FFFF1EB8 srgb(88%,100%,12%)

または多分あなたはこれを意味します:

for f in *.png; do echo $f; convert "$f" -format %c histogram:info: ;done > result.txt

結果.txt

blue.png
         1: (255,  0,  0) #FF0000 red
mad.png
       606: ( 8520,65535,57016) #2148FFFFDEB8 srgb(13%,100%,87%)
       613: (24248,65535,41287) #5EB8FFFFA147 srgb(37%,100%,63%)
         1: (32768,65535,32768) #8000FFFF8000 srgb(50%,100%,50%)
       641: (41287,65535,24248) #A147FFFF5EB8 srgb(63%,100%,37%)
       639: (57671,65535, 7864) #E147FFFF1EB8 srgb(88%,100%,12%)
red.png
         1: (255,  0,  0) #FF0000 red

結果をどうするつもりですか - それを達成する簡単な方法があると思います...

于 2016-10-14T20:47:35.333 に答える