Linux

画像とPDFを自由に加工できるimagemagickのconvertコマンドの使い方

はじめに

Ubuntuを使っていると、画像をPDFに変換したり、PDFを連結したりという作業がOS Xの時に比べて良いGUIアプリがまだありません。ただ、imagemagickconvertコマンドを使用するとかなり強力な処理を実行できます。このconvertコマンドの使い方についてまとめます。

imagemagickのインストール

convertコマンドはimagemagickに含まれているのでインストールします。

$ sudo apt-get install imagemagick


PDFを画像に変換、画像をPDFに変換する

以下のようにoriginal.pngoriginal.pdfとして新規作成されます。

$ convert original.png original.pdf


逆にPDFを画像に変換したい場合は順番を入れ替えます。

$ convert original.pdf original.png


つまり、基本的な使い方としては以下のようになります。

$ convert 変換前ファイル 変換後ファイル


実際には色々なオプションがあり、オプションを使用する場合は以下のように使います。

$ convert オプション 変換前ファイル 変換後ファイル


複数の画像を1つのPDFに変換する

以下では、正規表現を使ってimageで始まるPNGファイルを全てまとめて1つのPDFファイルにします。5つの画像ファイルがあれば5ページのPDFファイルになります。

$ convert image*.png mypdf.pdf


回転する

flipfloprotateオプションを使用することで画像やPDFを回転できます。

上下反転

$ convert -flip image.jpg image-fliped.jpg


左右反転

$ convert -flop image.jpg image-floped.jpg


角度を指定して回転

$ convert -rotate 180 image.jpg image-rotated.jpg


複数の画像を全て180度回転して1つのPDFに変換する

以下のようにすることで、フォルダ内にある全てのJPG画像を180度回転した上で、1つのPDFにまとめることができます。

$ convert -rotate 180 *.jpg output.pdf


PDFの指定したページのみを画像に変換する

例えばoriginal.pdf という名前のPDFファイルがあったとき、この5ページ目を 5.jpg という名前の画像ファイルに変換したい場合は以下のようにします。

$ convert original.pdf[5] 5.jpg


EXIF情報を削除する

EXIF情報(撮影位置、カメラ機種、撮影時のカメラ設定など)を全て削除します。以下は元々の画像も残ります。

$ convert -strip original.jpg noexif.jpg


グレースケールに変換

画像、PDFどちらでも以下のように-type GrayScaleを指定することでグレースケール化できます。

$ convert -type GrayScale original.jpg grayscale.jpg


シェルスクリプトと併用して応用する

シェルスクリプトを組み合わせることで色々な処理ができます。

複数の画像ファイルそれぞれをPDFに変換する

以下のように、forを使って、ファイル名が条件に一致するファイルをそれぞれ画像ファイルからPDFに変換するためのシェルスクリプトを作成します。ここではこのシェルスクリプトファイル名をconvert.shとします。

convert.sh#!/bin/bash

for var in `seq 22 46`
do
    convert file-"$var".jpg  file-"$var".pdf
done



このファイルに以下で実行権限を与えて実行すると、file-22.jpgfile-46.jpgがそれぞれfile-22.pdffile-46.pdfに変換され作成されます。

$ chmod +x convert.sh
$ ./convert.sh


ちなみに、上記は以下のように1コマンドとしてそのままターミナルにコピペしても使えます。

$ for var in `seq 22 46`; do convert file-"$var".jpg file-"$var".pdf; done


複数の画像をそれぞれ180度回転したものを作成して保存

以下を実行すると、現在のディレクトリにある全てのPNGファイルを180度回転したものをrotated-元のファイル名.pngという名前で作成します。

$ for file in *.png; do convert $file -rotate 180 rotated-$file; done


参考サイト

以下のサイト様がかなり参考になりました。画像のリサイズなどについてもわかりやすくかかれています。 

コマンド convert 画像ファイルを変換する (ImageMagick)

コマンド convert 画像ファイルを変換する (ImageMagick)

ImageMagick基本編:Mogrifyを用いた画像の一括処理について

MogrifyはImageMagickと呼ばれる画像の作成・編集・合成・変換をするための統合ソフトにおいてコマンドで一括処理を行う際に用いるコマンドです。今回は、 mogrifyを用いた画像の一括処理について 記事として扱おうと思います。


まとめ

コマンドを使った処理は最初は抵抗あるかもしれませんが、大量のファイルを処理したい場合などはかなりの威力を発揮します。

SPONSORED LINK

コメントを残す

メールアドレスが公開されることはありません。