macOSのコマンドラインで画像を変換、縮小する

投稿者: | ↻ : 2020年2月18日

最近のノートPCは性能が上がって画面がとても綺麗です。

綺麗ですが、それに伴って凄い解像度で、ちょっとした画面のキャプチャでもメガバイト単位のファイルサイズになりブログなどには不向きです。
そこで、別フォーマットへ変換や、画像のサイズを縮小するのですが、ファイル数が多いとGUIで同じ動作を繰り返すのは面倒です。

そんな時には、”sips”コマンドを使いましょう。(macOS使ってるなら

sipsコマンドとは

macOS(旧OS X)の固有のコマンドなので、別途インストール無しに使用できます。
オンラインマニュアルでは、scriptable image processing systemを利用するためのコマンドらしい。

主に2種類の機能があり、画像そのものに対する操作と、プロファイルに対する操作があります。
ここでは画像そのもの対しての操作で、使用頻度が高そうなもののみまとめます。

書式

sips [option] imagefile … [–out 出力先のファイル、またはディレクトリ]

オプション

出力先を指定する: –out ファイルまたは、ディレクトリ

出力先を省略すると上書き保存になります。
複数のファイルを処理する場合は、出力先に既存ディレクトリを指定します。

画像フォーマットを変換する: -s format 形式

画像フォーマットの変換を行います。
出力に対応している形式は、jpeg,tiff,png,gif,jp2,bmp,psd,tgaの8つです。

1ファイルの場合。


$ sips -s format png sample.jpeg --out sample.png
/Users/stupiddog/Pictures/sample.jpeg
  /Users/stupiddog/Pictures/sample.png

拡張子がフォーマットと合わないと警告ですが、出力は成功します。


$ sips -s format png sample.jpeg --out sample.bingo
/Users/stupiddog/Pictures/sample.jpeg
Warning: Output file suffix should be png
  /Users/stupiddog/Pictures/sample.bingo

縦横を指定してリサイズ: -z 高さ 幅

画像の高さと幅が指定した通りにリサイズされます。
縮小ではなくリサイズなので画像によっては拡大になります。
縦横比は崩れます。


$ sips -z 2000 600 sample.png 
/Users/stupiddog/Pictures/sample.png
  /Users/stupiddog/Pictures/sample.png

最大を指定してリサイズ: -Z 高さか幅の最大

比率を保ちつつ縦か横が最大値になるようにリサイズされます。
最大値が縦横どちらの値になるかは、元画像により変化します。
縮小ではなくリサイズなので画像によっては拡大になります。

縦横どちらかを基準にする場合、–resampleWidthか、–resampleHeightオプションを使用します。


$ sips -Z 1000 sample.png 
/Users/stupiddog/Pictures/sample.png
  /Users/stupiddog/Pictures/sample.png

幅を指定してリサイズ: –resampleWidth 幅

縦横比を保ちつつ指定した幅になるようにリサイズします。
縮小ではなくリサイズなので画像によっては拡大になります。


$ sips --resampleWidth 1024 sample.png 
/Users/stupiddog/Pictures/sample.png
  /Users/stupiddog/Pictures/sample.png

高さを指定してリサイズ: –resampleHeight 高さ

縦横比を保ちつつ指定した幅になるようにリサイズします。
縮小ではなくリサイズなので画像によっては拡大になります。


$ sips --resampleHeight 768 sample.png 
/Users/stupiddog/Pictures/sample.png
  /Users/stupiddog/Pictures/sample.png