sipsの-p(--padToHeightWidth)オプションを使うと、画像の周囲に余白を追加して指定サイズに収められる。
参考: 【sips】コマンドで画像のプロパティ情報を確認する
-pでパディングを追加する
-p <高さ> <幅>で、指定したピクセルサイズになるよう画像の周囲に余白を追加する。元画像は中央に配置され、はみ出た分が余白になる。
$ sips -g pixelWidth -g pixelHeight photo.png
/path/to/photo.png
pixelWidth: 1200
pixelHeight: 630
$ sips -p 800 1400 photo.png --out padded.png
$ sips -g pixelWidth -g pixelHeight padded.png
/path/to/padded.png
pixelWidth: 1400
pixelHeight: 800
–padColorで余白の色を指定する
--padColor <16進カラーコード>で余白の色を指定できる。省略した場合のデフォルトは黒(000000)である。
$ sips -p 800 1400 --padColor FF0000 photo.png --out padded_red.png
--padColorを指定すると、標準出力に<CGColor ...>のようなデバッグ情報が1行出力される。処理には影響しない。
指定サイズが元画像より小さい場合はクロップになる
-pは余白を追加して画像を大きくするオプションだが、指定したサイズが元画像より小さい場合は余白を追加できないため、-c(--cropToHeightWidth)と同じ結果になる。
$ sips -p 300 400 photo.png --out small.png
$ sips -c 300 400 photo.png --out cropped.png
$ shasum small.png cropped.png
c2dff737c49aad9df51fcda4a25d88b531c1f143 small.png
c2dff737c49aad9df51fcda4a25d88b531c1f143 cropped.png
shasumで比較すると同じハッシュ値になり、生成される画像が完全に一致することが確認できる。パディング目的で使う場合は、指定サイズが元画像より大きいことを確認しておく。
参考
SIPS Command: Scriptable Image Processing System in macOS\第一線のプログラマーの行動原理を学べる!/
