RABZOMBIE

複数画像を右クリック一発でWeb用にリサイズしてJPEGに一括変換する方法【ImageMagick】

2020年12月12日

タグ:Linux

複数画像を右クリック一発でWeb用にリサイズしてJPEGに一括変換する方法【ImageMagick】
目次(クリックして開閉)

ブログに掲載する画像は画像サイズ・ファイルサイズともに縮小してアップロードしたいですよね。

こんなとき通常はバッチコンバートできるGUIソフトを探し、インストールして使うと思います。でも今回はManjaro LinuxにプリインストールされていたImageMagickを使ってやってみます。

コマンドで試してみる

ImageMagickはCLIアプリなので、基本コマンドラインで使います。

試しにターミナルで以下のコマンドを実行するとディレクトリ内のPNG画像がすべてJPEGに変換されました。

magick *.png -set filename:x "%t" "%[filename:x].jpg"

Web用画像に適したオプションを付けてみましょう。

magick *.png -set filename:x "%t" -strip -resize "1920x1920>" -interlace JPEG -sampling-factor 4:2:0 -quality 85 -define jpeg:block-smoothing "%[filename:x].jpg"

オプションについてメモ。値については適宜変更してください。

  • -strip
    • 元画像に含まれるメタデータを削除します。
  • -resize "1920x1920>"
    • 横幅が1920pxより大きい画像は1920pxまで縮小されます。縦幅についても同様です。当初はFullHDを想定して1920x1080>としましたが、スマホの縦長表示も考慮してこの値にしました。拡大アルゴリズムにはMitchell(Bi-Cubic)、縮小にはLanczos3が使われる模様。
  • -interlace JPEG
    • Web用なのでプログレッシブJPEGにします。
  • -sampling-factor 4:2:0
    • クロマサンプリングを減らしてファイルサイズを削減します。
  • -quality 85
    • JPEG品質を指定します。Web用なら75〜85ぐらいで良いと思います。
  • -define jpeg:block-smoothing
    • ブロックノイズを目立たなくします。

右クリックから変換できるようにする

上記をふまえて、画像ファイル(複数でもOK)右クリックから一括変換できるようにします。

  1. スタートメニューを右クリックして「アプリケーションを編集」を選択。KDEメニューエディターを開きます。
  2. 「新しい項目」ボタンをクリックしてコマンドを追加します。
  3. 名前欄に「ImageMagickでWeb用に変換」コマンド欄にはmagick %F -set filename:x "%t" -strip -resize "1920x1920>" -interlace JPEG -sampling-factor 4:2:0 -quality 85 -define jpeg:block-smoothing "%[filename:x].jpg"と入力し、「保存」ボタンをクリック。KDEメニューエディターは閉じてかまいません。
  4. つづいて「KDEシステム設定」アプリを起動します。
  5. アプリケーション>ファイルの関連付けを開きます。
  6. 「png」を検索して選択。
  7. 「追加」ボタンをクリックし、「ImageMagickでWeb用に変換」を検索して追加します。
  8. 「適用」ボタンを忘れずにクリックしてからKDEシステム設定を閉じましょう。

「jpg」など他に使いたい画像形式についても上記4〜8を設定するとさらに便利になります。ただし、Gimpのxcf形式についてはバグがあるとの記述をネット上で見かけたので注意が必要です。

使用方法

使い方は簡単です。

  1. DolphinファイルマネージャーでPNGファイル(複数選択してもOK)を右クリック。
  2. アプリケーションで開く>ImageMagickでWeb用に変換を実行します。

はい、JPGに変換できましたね。

ちなみに右クリックから他のアプリで開くことができればDolphinファイルマネージャー以外でも使えます。たとえばGwenviewイメージビューアーからでも一括変換できました。

改良版

私の使用状況から使い勝手を考慮し新たに仕入れた情報を盛り込んだ結果、以下のようになりました。

mkdir img && magick %F -strip -thumbnail "1920x1920>" -unsharp 0x0.75+0.75+0.008 -interlace JPEG -sampling-factor 4:2:0 -quality 85 -define jpeg:block-smoothing img/%03d.jpg

変更/追加されたオプションについてのメモ。

  • mkdir img &&
    • ImageMagickで画像を処理する前に「img」フォルダーを作成します。
  • -thumbnail
    • -resizeとほぼ同様ですが、メタデータを削除します。
  • -unsharp 0x0.75+0.75+0.008
    • 画像を縮小するとボヤけるので、先鋭化フィルターをかけます。
  • img/%03d.jpg
    • imgフォルダー内に3桁連番のJPEGとして出力します。%04dで4桁、%05dだと5桁になります。

参考


Profile picture

著者: ラブゾンビ フリーとオープンソースを愛するゾンビ。泥沼の住人。