シェルスクリプトで画像ファイルを変換する
アタリ画像を用意したり,あおり校正のために都合のよい画像変換を行うため,シェルスクリプトで画像ファイルを変換する方法をいくつか挙げています.
目次
Imagemagickのconvertコマンドによる変換
Imagemagickをインストールすると,convert
コマンドが使えるようになります.
convert
コマンドの基本的な書き方はシンプルです.
convert 入力ファイル 出力ファイル |
拡大・縮小
リサイズのオプションは次のように書きます.
-resize 50%
倍率-resize 32x32
ピクセル(縦横比は維持します.)-resize 32x32!
ピクセル(縦横比を歪めてぴったりにします.)
トリミング
トリミングのオプションは次のように書きます.
-crop 横x縦+横軸開始位置+縦軸開始位置 |
ピクセル単位,左上原点です.
透過
白背景を除去するなら,
-transparent white |
です.
合成
2つの画像を合成することができます.
ウォーターマークなどの画像をスタンプファイルと呼ぶことにすれば,次のように書けます.
convert 入力ファイル スタンプファイル -geometry スタンプ横軸位置+縦軸位置 -composite 出力ファイル |
解像度
解像度は次のように書きます.
-density 300 |
一括変換
Imagemagickのconvert
コマンドに代えて,mogrify
コマンドを使うことで複数ファイルをまとめて処理することができます.
次はepsファイルをPDFファイルに形式変換する例です.
mogrify -format pdf *.eps |
PDFをトリミングする
PDFのトリミングだけであれば,pdfcrop
コマンドを使うことができます.
file
を入力ファイル,dst
を出力ファイルとすれば,
pdfcrop `-10 -20 -10 -20` file dst |
トリミングの値は左・上・右・下の順番です.
トリミングの単位はbpで,ほぼptと同じになります.
次のように,左右・上下という書き方をすることもできます.
pdfcrop `-10 -20` file dst |
出力ファイル名(ここではdst
)を省略すると,file_crop
というファイル名で出力されます.
なお,このpdfcrop
コマンドはCentOS版には無いようでした.
UbuntuやMacではTeX関連を入れたときに一緒に入ってきました.
PDFを画像に変換する
PDFを画像に変換するには,pdftoppm
コマンドを使います.
pdftoppm 入力ファイル名 出力ファイル名につける接頭辞 |
出力形式として,オプションから-png
・-jpeg
・-tiff
を指定できます.
解像度600dpiにするなら,-r 600
としてください.
PDFの2ページ目から5ページ目を変換対象にするなら,
-f 2 -l 5 |
と指定します.
TIFFファイルを結合する
Ghost Scriptのtiffcp
コマンドを使います.
例えば,
tiffcp *.tiff output.tiff |
とすると,カレントディレクトリの全ての(.tiffで終わる名前が付けれられた)tiffファイルが結合され,output.tiffにまとめられます.
EPSファイルをPDFに変換する
Ghostscriptのepstopdf
コマンドを使うことで,その名の通りEPSファイルをPDFに変換することができます.
epstopdf EPSファイル |
解像度を調べる
ImageMagickがインストールされているとします.
identify
コマンドで画像ファイルの様々な情報を取得でき,その中に解像度の情報が含まれています.
実際,
identify -verbose 画像ファイル名 |
で出力される項目のうち,Resolution
は解像度です.