SIPS コマンド - 画像をコマンドラインで - その1 (リサイズ / 回転 / 反転 など)
《元画像ファイルについて》
ファイル名:Original_Img.jpgサイズ:768 x 336
《準備》
ターミナルを立ち上げて、作業フォルダにCDしておくPathに日本語とか入っちゃってる場合、うざいので、ターミナルで、
cd
とだけ打って*2、Finderで、当該フォルダをとっつかまえて、ターミナルのウィンドウに持ってくれば、Pathごと自動的に入力されるというのは、皆さんご存じのTIPS。
《変形(アスペクト比も変わる)》
縦横比も変わるような変形には、-z オプション、もしくは、----resampleHeightWidth オプションを使用します。※ピクセル数は縦・横の順で指定※下記の 例 1 も 例 2 も同じ出力が得られます。
例 1) 横300ピクセル、縦を450ピクセルにする(-z)元画像ファイル:Original_Img.jpg元画像サイズ:768 x 336
sips -z 450 300 Original_Img.jpg --out 1.jpg
出力画像ファイル:1.jpg出力サイズ:300 x 450
例 2) 横300ピクセル、縦を450ピクセルにする(----resampleHeightWidth)元画像ファイル:Original_Img.jpg元画像サイズ:768 x 336
sips --resampleHeightWidth 450 300 --out 2.jpg Original_Img.jpg
出力画像ファイル:2.jpg出力サイズ:300 x 450
《アスペクト比は同一の縮小・拡大(一辺が ○○ px の正方形に fit するように)》
縦横比のキープした変形には、-Z オプション、もしくは、--resampleHeightWidthMax オプションを使用します。※サイズ指定の引数はひとつ(縦横指定ではない)
例 3) 一辺が 400px の正方形に fit するように、アスペクト比を変えずに、拡大・縮小します元画像ファイル:Original_Img.jpg元画像サイズ:768 x 336
sips -Z 400 Original_Img.jpg --out 3.jpg
出力画像ファイル:3.jpg出力サイズ:400 x 175
ところが…
ところが、これだと、以下のような場合、問題がおきます。
例 4) 横幅を 400 px にそろえたくて、画像が縦長の場合元画像ファイル:Tatenaga.jpg元画像サイズ:200 x 455
sips -Z 400 Tatenaga.jpg --out 4.jpg
出力画像ファイル:4.jpg出力サイズ:176 x 400
例 5) 縦の高さを 400 px にそろえたくて、画像が横長の場合元画像ファイル:Yokonaga.jpg元画像サイズ:600 x 300
sips -Z 400 Yokonaga.jpg --out 5.jpg
出力画像ファイル:5.jpg出力サイズ:400 x 200
例 4 では、横幅ではなく、縦の高さが 400 px になってしまい、肝心の横幅は、176 px ですし、例 5 では、縦の高さではなく、横幅が 400 px になってしまい、肝心の縦の高さは、200 px です。私の場合も最終的には、「フォルダ内の画像ファイル全てを対象に、一括して横幅を統一した画像に変換をしたい」ので、これではうまくないわけです。つまり、上記の 例 4 や 例 5 が混在するフォルダに対して、-Z オプションでは、具合が悪いわけです。
《アスペクト比は同一の縮小・拡大(横幅指定 / 縦幅指定)》
直接、横幅や高さを明示的に指定して、かつ、縦横比を変えないで、変換するオプションってないの?ヘルプ出してみるべ。
sips --help
ありました。この記事の最初に「縦横比も変わる変形オプション」として説明した-z オプションと同列のところにあったので、見逃すところでした。明示的に横幅を指定して、縦横比を変えないためには、--resampleWidthを、未自適に高さを指定して、縦横比を変えないためには、--resampleHeightを使えばいいようです。
sips --help
例 6) 横幅を 400 px にして、かつ、アスペクト比を変えずに、拡大・縮小します元画像ファイル:Tatenaga.jpg元画像サイズ:200 x 455
sips --resampleWidth 400 Tatenaga.jpg --out 6.jpg
出力画像ファイル:6.jpg出力サイズ:400 x 910
例 7) 高さを 400 px にして、かつ、アスペクト比を変えずに、拡大・縮小します元画像ファイル:Yokonaga.jpg元画像サイズ:600 x 300
sips --resampleHeight 400 Yokonaga.jpg --out 7.jpg
出力画像ファイル:7.jpg出力サイズ:800 x 600
《その他:Rotate / Flip / Crop / Pad 》
回転させる / 水平(垂直)反転 / (画像中央からの)切り抜き などができます。ま、このあたりは、間違えようがないでしょ。
例 8) 時計回りに45度回転させます元画像ファイル:Original_Img.jpg元画像サイズ:768 x 336
sips -r 45 Original_Img.jpg --out 8.jpg
出力画像ファイル:8.jpg出力サイズ:780 x 780
例 9) 水平に左右を反転させます(鏡に映った感じ)元画像ファイル:Original_Img.jpg元画像サイズ:768 x 336
sips -f horizontal Original_Img.jpg --out 9.jpg
出力画像ファイル:9.jpg出力サイズ:768 x 336
例 10) 垂直に上下を反転させます元画像ファイル:Original_Img.jpg元画像サイズ:768 x 336
sips -f vertical Original_Img.jpg --out 10.jpg
例 11) 200 x 300 の画角で、中心から、元画像を切り出します。※ 指定画角サイズが、元画像より小さい場合:元画像を中心から指定画角分切り出します元画像ファイル:Original_Img.jpg元画像サイズ:768 x 336
sips -c 300 200 Original_Img.jpg --out 11.jpg
出力画像ファイル:11.jpg出力サイズ:200 x 300
例 12) 400 x 800 のキャンバスの中心に、元画像を貼り付けたようにします※ 指定画角サイズが、元画像より大きい場合:黒いキャンバスの中心に元画像を貼り付けた感じになります。 今回の元ファイルの例ですと、横がキャンバスより長く、縦がキャンバスより短いので、 結果としては、元ファイルの左右は切り捨てられ、上下には、黒いキャンバスが見えるということになります。 ところで、キャンバスの色ですが、黒は白とかにならないのかなぁ。ご存じの方、教えて下さい。 > えらいひと元画像ファイル:Original_Img.jpg元画像サイズ:768 x 336
sips -c 800 400 Original_Img.jpg --out 12.jpg
出力画像ファイル:12.jpg
0コメント