Imagemagickを使って画素数のみを取得する。

AWS Rekognitionを使っていて、数値として画素数を取得したいときに少々手間取ったので、記事にしておきます。

Imagemagickのインストール

yum install Imagemagick

一応取得できる方法(失敗する)

# identify test.png 
test.png PNG 918x595 918x595+0+0 8-bit DirectClass 37.5KB 0.000u 0:00.000

identifyは写真の情報をよこしてくれます。

ここから画素数を取得しようと思った時、cutなどを使うことを検討しますが

画素数が3桁か4桁かがわからない。写真の名前も変わる。これじゃ参照できない!

となります。

identifyにはオプションで-verboseというものがあり、すごく詳細に情報を表示できます。 画素数が載っているところだけgrepで抜き出してみましょう。

# identify -verbose test.png | grep "Geometry"
  Geometry: 918x595+0+0

ファイル名が消えました!

そして画素数大きくなると、単純に後ろにずれるだけと考えられます。

そこで13文字目より後、1個めの+より前 というcutをします。

# identify -verbose test.png | grep "Geometry" | cut -c 13- | cut -f 1 -d "+"
918x595

ここまで来たらあとは、「x」より前かあとかなので、

x画素数

# identify -verbose test.png | grep "Geometry" | cut -c 13- | cut -f 1 -d "+" | cut -f 1 -d "x"
918

y画素数

# identify -verbose test.png | grep "Geometry" | cut -c 13- | cut -f 1 -d "+" | cut -f 2 -d "x"
595

抽出できました。