ImageMagickで画像のリサイズをスクリプト化する
静的サイトに合わせて自動で画像サイズを調整する
Mainroad テーマは Hugo で使用する際、画像を自動でリサイズしない。 just copies from static folder に記載されているように、静的フォルダからコピーするだけである。 そのため、適切なサイズにリサイズおよびクロップするスクリプトを準備する必要がある。
いつ
私はいくつかの画像ソースを使用しているが、スマートフォンとカメラが最もよく使われている。 それらは異なる解像度とアスペクト比を持つ。
そのため、処理の手順が必要である:
- アスペクト比に中央クロップ
- 2つの解像度 にリサイズ(縮小)。JPEG品質は80%で十分である。
- 235x171
- 678x495
どこで
ソース画像がすべて ~/tmp/img_src フォルダにあると仮定する。 以下が必要である:
- 結果画像を ~/tmp/img_235x171 および ~/tmp/img_678x495 フォルダに移動
- 画像の名前は
_235x171.jpg および _678x495.jpg のようにする
どうやって
Ubuntu LinuxではImageMagickを使用する
sudo apt-get install imagemagick
クロップ手順:
convert wizard.png -gravity center -extent 11:8 wizarc.jpg
# 今、ジオメトリを確認
identify wizard.png wizarc.jpg
リサイズ手順
convert wizarc.jpg -resize 678x495 -quality 80 -interlace plane wizarc_678x495.jpg
convert wizarc.jpg -resize 235x171 -quality 80 -interlace plane wizarc_235x171.jpg
# 今、ジオメトリを確認
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg
80はJPEGの品質であり、planeはプログレッシブJPEGを意味する。 これは、遅い接続で画像をより早く読み込む助けになる。 単にサムネイルが最初に読み込まれるだけでなく、ファイル自体が小さくなるからである。少なくともウィザードのケースではそうである。
境界線付き
convert wizarc.jpg -resize 676x493 -quality 80 -interlace plane -border 1x1 wizarc_678x495.jpg
convert wizarc.jpg -resize 233x169 -quality 80 -interlace plane -border 1x1 wizarc_235x171.jpg
# 今、ジオメトリを確認
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg
この投稿の冒頭に表示されている画像と、ソース画像の比率は以下のようである:
これは単純なリスケーリングと境界線の追加の結果である。
convert wizard.png -resize 20% -quality 85 -interlace plane -border 2x2 wizard20.jpg
他のオプション
nautilus-image-converter
nautilus-image-converterは、ナウチル拡張機能で、画像を一括でリサイズまたは回転することができる。 すべての現在サポートされているUbuntuバージョンでnautilus-image-converterをインストールするには、ターミナルを開き、以下のコマンドを入力してください:
sudo apt-get install nautilus-image-converter
これにより、ナウチルで右クリックして「画像のリサイズ」を選択できるようになる。(もう一つは「画像の回転」)
お好みで一括でディレクトリ内のすべての画像を処理することも可能であり、アプリケーションを開く必要がない。
ナウチルを再起動して新しいコンテキストメニューを表示するには、以下のコマンドを実行してください。
nautilus -q
その後、ホームフォルダのアイコンをクリックしてナウチルを再読み込みし、新しいプラグインを使用するようにしてください。
mogrify
mogrifyコマンドは、リサイズされた画像で元のファイルを上書きします:
mogrify -resize 50% *.png # 画像のアスペクト比を維持 mogrify -resize 320x240 *.png # 画像のアスペクト比を維持 mogrify -resize 320x240! *.png # 画像のアスペクト比を維持しない mogrify -resize x240 *.png # 画像のアスペクト比を維持しない mogrify -resize 320x *.png # 画像のアスペクト比を維持しない
他の役に立つツール
画像のメタ情報(解像度、ビット深度など)を取得するには、ImageMagickパッケージの一部であるidentifyコマンドを使用します。
identify image.jpg
これは、例えば以下のような出力を生成します。
image.jpg JPEG 720x482 720x482+0+0 8-bit DirectClass 100KB 0.000u 0:00.009
画像をPDFに変換
convert $(ls -v *.jpg) foobar.pdf
convert $(ls -v *.png) foobar.pdf