複数画像の縦横サイズを変更する方法まとめ Unix,Linux,Macターミナル

Featured image

画像ファイルの縦横サイズを変更したいけどファイルが多い。
そんな時にどの様にして修正すればいいのかまとめてみました。

画像ファイルの縦横サイズを変更する方法はいくつかあります。
Mac のプレビュー機能で GUI で変更するか、CLI でコマンド叩いて変更するなど。

人によって適した方法は異なると思うのでまとめてみました。

まずは単体画像の縦横サイズを変更する方法です。

単体画像の縦横サイズを変更する方法

Mac のプレビュー機能でリサイズする方法

写真をダブルクリック » ツールタブ » サイズ調整 » 幅・高さを変更し OK ボタン押下

picture-resize-image-magick

picture-resize-image-magick2

Unix,Linux,Mac ターミナルでリサイズする方法

sips コマンド

sips -Z 540 画像ファイル

ただこのコマンドでファイルサイズ変更したら、以下エラー発生しリサイズできなかったファイルあり。

Error: Unable to render destination image

以下ブログによると、画像の設定によって使用できないらしい(インデックス形式を利用していると)

[https://conocode.com/troubleshooting/mac-sips-command-resize-image-error/]

なので以下他の方法探してみました。

ImageMagick を使用しリサイズする

convert コマンド

リサイズした画像を新たなファイルとして作成する。

convert 画像ファイル.png -resize 540x540 resize_画像ファイル.png

resize_画像ファイル.pngの縦横サイズが540x540になっている

mogrify

生成前のファイルに上書きする
縦横比固定

mogrify -resize 540x540 画像.png

縦横非維持

mogrify -resize 200x540! 画像.png

 


複数画像ファイルを一気にリサイズする方法

Mac のプレビュー機能で複数リサイズする方法

写真を複数選択しサムネイル画面から複数画像リサイズすること可能。

Unix,Linux,Mac ターミナルで複数リサイズする方法

find コマンドで複数ファイルを検索する

find . -type f -name "画像.png" | xargs コマンド;

 

以下の様に -exec で処理することもできますが、| xargs の方が処理早い。

-exec は見つけたファイル毎にコマンドを発行しますが、xargs コマンド一回の為。

  • find で見つけた値が{}に含まれている。
find . -type f -name "画像.png" -exec コマンド {} \;

sips コマンド

find . -name "画像.png" | xargs sips -Z 540;

ImageMagick convert コマンドの場合

  • find コマンドで見つけたファイルを{}に含め、リサイズ後「resize_画像.png」に変えて新規作成している。
find . -name 画像.png -exec convert {} -resize 540x540 resize_画像.png \;

ただ convert コマンドの場合 -exec で実施する方法でしか出来なかったので遅いかも。

xargs でも調べればできるかもだけど、mogrify で実施した方が良さげ。

ImageMagick mogrify の場合

リサイズした画像は新規別名ファイルは作成せず、既存ファイルを上書きする。

find . -name 画像.png | xargs mogrify -resize 540x540;

画像の縦横サイズ確認

単一 ファイル縦横サイズ確認

  • 該当ファイルの縦横サイズのみ表示していく。
identify -format '%wx%h\n' "ファイル名"

複数 ファイル縦横サイズ確認

  • 該当ファイルの縦横サイズのみ表示していく。
find . -type f -name "画像.png" | xargs identify -format '%wx%h\n'
comments powered by Disqus