ロゴ メインコンテンツへ
RSSフィード
「ソフトウェア開発」に関連する記事一覧

シェルスクリプト 画像解像度取得

2009/10/26
(2018/11/09 最終更新)
(この記事の文字数: 579)

シェルスクリプトで画像の解像度を取得したかったので、次のようにしてみました。sample.tifの画像解像度を取得してresolutionという変数に代入しています。


image="sample.tif"
convert $image buf.pgm
buf=(`convert -verbose buf.pgm buf.pgm`)
resolution=${buf[2]}
rm buf.pgm

imageMagickのconvertコマンドに-verboseオプションを入れると画像の情報を取得できたので、配列に格納して画像解像度だけを取得してみました。


convert $image buf.pgm

でわざわざPGMファイルに変換しているのは、verboseオプションによって取得できる画像情報がファイルフォーマットによって異なるからです。
PGMだと情報が比較的少なかったのでPGMを選びました。PGMの場合、2番目の配列に画像解像度情報が格納されます。

resolution="480x320"

というような感じになります。

別にこんなことしなくてもPGMに変換した時点でヘッダーから解像度を取得すればいい話ですがね。

ついでに幅と高さをわけるスクリプトも書いておきます。


resolution=${resolution//x/ }
buf=($resolution)
width=buf[0]
height=buf[1]

resolutionのxをスペースで置き換えて、buf配列に別々に格納して、それをwidthとheightに代入するだけです。


ただ、この方法だと一度ファイルを変換する必要があるので、画像解像度が極端に大きかったり、変換に重い処理が必要な場合は良くないですね。

フォーマット変換を行わなくても画像解像度くらい取得できると思うんですが、結局よくわかりませんでした。

どなたか、良い方法を知っていたら教えてください。


  このエントリーをはてなブックマークに追加  

<<「ソフトウェア開発」の記事一覧に戻る

<<「ソフトウェア開発」の次の記事
「ソフトウェア開発」の前の記事 >>

コメント(0 件)



コンテンツロード: 0.0072 sec
Copyright(C)2006-2024 puarts All Rights Reserved