木 27 9月 2007
《元画像ファイルについて》

ファイル名:Original_Img.jpg
サイズ:768 x 336
《準備》
ターミナルを立ち上げて、作業フォルダにCDしておく
Pathに日本語とか入っちゃってる場合、うざいので、ターミナルで、
cd
とだけ打って*2、Finderで、当該フォルダをとっつかまえて、ターミナルのウィンドウに持ってくれば、Pathごと自動的に入力されるというのは、皆さんご存じのTIPS。
《変形(アスペクト比も変わる)》
※下記の 例 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 するように)》
例 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 や 例 5 が混在するフォルダに対して、-Z オプションでは、具合が悪いわけです。
《アスペクト比は同一の縮小・拡大(横幅指定 / 縦幅指定)》
sips --help
ありました。
この記事の最初に「縦横比も変わる変形オプション」として説明した-z オプションと同列のところにあったので、見逃すところでした。
明示的に横幅を指定して、縦横比を変えないためには、–resampleWidthを、
未自適に高さを指定して、縦横比を変えないためには、–resampleHeightを使えばいいようです。
例 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 》
例
元画像ファイル: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

出力画像ファイル:10.jpg
Crop と Pad
しかし、結果に違いは見つけられませんでした。
以下の例では、cropの方を使っています。
例 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