先日、ターミナル入門の記事を書いたばかりですが、再びターミナルについてです!
https://qiita.com/marietti/items/ab4cb8835b1b3a733502
今回は、画像を一気にリサイズしたい場面に直面し諸々調べて操作したので、
ターミナルでの画像操作をまとめていこうと思います!
基本の記述法
$ ships -hoge(option) ***(該当の画像,ディレクトリ) -out(出力先のディレクトリ)
macで画像操作をする際は、ships
コマンドを使います。
基本的には上書き保存されてしまうので、-out hoge
で出力先(hogeディレクトリ)を指定してあげることが多くなりそうです。
画像をリサイズしたい
リサイズの基準はいくつかあります。
ここで紹介するものは縦横比固定でリサイズできます!
最大値を指定してリサイズ
$ sips -Z 1000 sample.png
1000
の部分に希望のpx数を記載すればOK
縦を指定したい場合は–resampleHeight
オプションをプラス
横を指定したい場合は–resampleWidth
オプションをプラスしましょう
幅を指定してリサイズ
$ sips --resampleWidth 1000 sample.png
1000
の部分に希望のpx数を記載すればOK
高さを指定してリサイズ
$ sips --resampleHeight 1000 sample.png
1000
の部分に希望のpx数を記載すればOK
画像の拡張子を変換したい
$ ships -s format 形式(拡張子名)
画像フォーマットの変換は-s
オプションで可能です。
指定できる拡張子は下記の8種類のようです。
jpeg
,tiff
,png
,gif
,jp2
,bmp
,psd
,tga
webpの変換
webpについては、別途「cwebp」というコマンドをインストールし、実行していく必要があります。
手順01:「cwebp」のインストール。
$ brew install webp
brew list
コマンドで一覧にwebpがあればインストール成功です。
手順02:Shellスクリプトの用意
変換したい画像をまとめたディレクトリ内に、Shellスクリプトを作成します。保存形式は**hoge.sh
**です。
下記がShellスクリプトの中身です
#!/bin/sh
for file in `find . -type f -name "*.jpg" -or -name "*.jpeg" -or -name "*.png"`;
do
cwebp $file -o "${file%.*}.webp" >/dev/null 2>&1
done
こちらの例ではjpg
prpng
のファイルを全てwebpに変換します。
手順03:Shellスクリプトに実行可能な権限を付ける
Shellスクリプトは作った段階では実行権限がありません。
実行権限を付与するためShellスクリプトがあるディレクトリで以下の操作を実行します。
$ chmod 755 webp.sh
これで準備完了!
手順04:Shellスクリプト実行
先ほど作ったShellスクリプトがあるディレクトリに移動し、Shellスクリプトを実行します
$ ./webp.sh
スクリプトを実行後、webpファイルが元あった画像データと同じ数生成されていれば成功です!
その他
$ sips --help
ヘルプを見ればオプションが一覧で表示されます!
ターミナルの苦手意識をなくし、業務効率化していきたいです