ImageMagickで画像を一括縮小/リサイズする方法

スポンサーリンク

ブログやヤフオクに画像をのせる際に、画像のファイルサイズを小さくしたいことがあります。

1枚のみであれば、画像を開いてリサイズして保存でもいいのですが、複数枚ある場合に1枚づつ処理していては面倒です。

Windowを使っていた時には、「縮小専用」という便利なツールがあったのですが、それと同等のことをLinux Mintで行うにはどうしたらよいかを調べました。

すると、「ImageMagick」というユーティリティの「mogrify」コマンドを使うと画像を一括で縮小/リサイズできることがわかりました。

 

画像を一括で縮小/リサイズする方法

縮小/リサイズしたい画像を1つのディレクトリに保存します。

※コマンドを誤ると、縮小したファイルで上書きしてしまう可能性があるため、オリジナルのファイルは別に保存しておくことをおすすめします。

 

画像を保存したディレクトリを右クリックし、[端末の中に開く]をクリックします。

 

以下のコマンドを実行します。

mkdir resize
mogrify -path ./resize -strip -format jpg -unsharp 0.125x1.0+1+0.05 -quality 90 -modulate 105 -contrast -resize 1280x\> *.*

※Linux Mint 18.2には「ImageMagick」がインストールされていたので、特にインストール作業とかは必要なく、「mogrify」コマンドが使用できます。

 

画像を保存したディレクトリを開くと、「resize」というディレクトリが作成されています。

 

「resize」ディレクトリを開くと、リサイズされた写真が保存されています。

 

以上で、一括で画像を縮小/リサイズができました。

 

実行したコマンドの解説

resizeディレクトリを作成する

mkdir resize

縮小/リサイズした画像ファイルを別ディレクトリに保存するため、「resize」というディレクトリを作成します。

 

画像の縮小/リサイズを行う

mogrify -path ./resize -strip -format jpg -unsharp 0.125x1.0+1+0.05 -quality 90 -modulate 105 -contrast resize 1280x\> *.*

mogrify

「ImageMagick」というユーティリティの「mogrify」というコマンドを実行します。

-path ./resize

縮小/リサイズしたファイルの出力先ディレクトリに「resize」ディレクトリを指定します。

-strip

写真に付加されている情報(撮影日時等)を削除します。

-format jpg

ファイルをjpg形式で出力します。

-unsharp 0.125×1.0+1+0.05

写真を縮小するとぼやけた感じになるため、それを補正するために指定します。

※後ろの数字の指定はよく理解していません。インターネットから拾った値をそのまま使用・・・

-quality 90

写真のクオリティを指定します。

1が最低品質で100が最高品質。とりあえず、90を指定しています。

-modulate 120

写真の明るさを変更する際に指定します。100を基準にして、100より大きい値を指定すると明るくなります。逆に100より小さい値を指定すると暗くなります。

-contrast

写真のコントラストを変更する際に指定します。「-contrast」がコントラストを強くします。「+contrast」をつけるとコントラストを弱くします。

-resize 1280x\>

横幅が、1280px以上の場合、1280pxに収まるように縮小します。

※「\」は、「>」を端末で使うとリダイレクトを意味してしまうため、それを回避するためのエスケープシーケンスです

*.*

縮小/リサイズ対象のファイルを指定します。

ディレクトリ内の全ファイルを対象とするため、「*.*」と指定しました。

 

まとめ

「ImageMagick」の「mogrify」コマンドを使って、画像を一括で縮小/リサイズする方法を紹介しました。

Linuxはコマンドをうまく使ってあげることで、一括処理が簡単にできるところがいいですね。

これで、ブログ作成やヤフオク出品の際の画像の処理が楽にできそうです。

コメント

  1. km より:

    私はLinux mintを使い始めてあまり経っていないので、貴重なアドバイスを拝読させていただいております。
    ありがとうございます。

    さて「縮小専用」は、私はいまもしばしば使いまして、ご指摘のようにLinuxでも使えるといいなと思いもしました。Wineで走らせればいいのかもしれませんが、explorerの右クリックの「送る」のようなことができないのじゃないかな、と思い、実行しておりません。
    そこで、今回の記事に関連してですが、ターミナルでコマンドを打つのはやはり私には敷居が高いです。
    ということで、Mintの「ソフトフェアの管理」というMenuのアプリを立ち上げ、「resize」で検索するとCaja-image-converterという、Mint標準ファイラーのextension(?ad-in)というプログラムがありました。
    これをインストールすると、ファイラーで当該の画像ファイル(まだjpg, jpegしか見ていないのですが)を右クリックすると「画像のサイズ変更」のメニューが加わっています。
    これだと私にも簡単に縮小ファイルができそうです。複数のファイルを選択しても、まとめて変更OKです。

  2. km より:

    コメントのコメントで失礼します。

    何度かこちらに記入させていただいております。

    TOSHIOさまのご感想とかご忠告などは追って、メールなどいただけるのでしょうか。

    それとも、このサイトのどこかに掲示板のようなものがあり、
    そこでQandAのような形で集約されて、コメントとそのご回答などが見られるのでしょうか

    • TOSHIO より:

      kmさん

      今週はちょうど少し遅い夏季休暇をとっていたこともあり、ブログのチェックがあまりできておらず、返信が遅くなりました。

      コメントを承認制にしておきながら、承認/返信が遅くなり、申し訳ありませんでした。
      私の書いた記事に興味を持って頂き、ありがとうございます。

      「縮小専用」は便利ですよね。
      私もWineで動かすということは考えたのですが、Linux上でどこまでちゃんと動作してくれるのかわからなかったのでコマンドで縮小するという方法に行き着きました。

      教えて頂いた「Caja-image-converter」ですが、非常に便利そうですね。
      Windowsでは、「縮小専用」でできていたことがLinuxだとコマンドからしかできないということは残念だと思っていました。

      私もインストールして使ってみたいと思います。