Macで画像を圧縮するためには、以下のコマンドを使うことができます。
sipsコマンドを使用する方法:
sips -s format jpeg -s formatOptions 90 input_file -o output_file
このコマンドでは、input_fileで指定されたファイルをJPEG形式に変換し、品質を90%に設定してoutput_fileに保存します。
convertコマンドを使用する方法:
convert -quality 90 input_file output_file
このコマンドでは、input_fileで指定されたファイルをJPEG形式に変換し、品質を90%に設定してoutput_fileに保存します。
どちらのコマンドも、圧縮したい画像ファイルのパスをinput_fileに指定し、保存先のファイル名をoutput_fileに指定します。また、必要に応じて品質設定を調整することができます。
以下は、Automatorのクイックアクションでsipsコマンドを使って画像を圧縮するためのスクリプトです。このスクリプトは、複数のファイルを選択した場合にも動作するようになっています。
for f in "$@"
do
if [ -f "$f" ]
then
# 圧縮率を設定する(85%)
QUALITY=85
# ファイル名と拡張子を分離する
filename=$(basename "$f")
extension="${filename##*.}"
filename="${filename%.*}"
# 新しいファイル名を作成する
new_filename="${filename}_compressed.${extension}"
# 画像を圧縮する
sips -s format jpeg -s formatOptions $QUALITY "$f" --out "${f%/*}/$new_filename"
fi
done
このスクリプトでは、まず選択されたファイルを1つずつ処理します。ファイル名と拡張子を分離し、新しいファイル名を作成します。次に、sipsコマンドを使用して、指定された圧縮率で画像をJPEG形式に変換し、新しいファイルに保存します。
複数のファイルを選択した場合、このスクリプトはそれぞれのファイルに対して順番に処理を行います。圧縮された画像は、元の画像と同じ場所に保存され、ファイル名に_compressedが追加されます。
コマンドの二つの-sの意味とは
sipsコマンドの-sオプションは、指定されたプロパティを設定するために使用されます。-sオプションに続く文字列は、設定するプロパティ名とその値を指定します。
sips -s format jpeg -s formatOptions 85 input.jpg --out output.jpgの場合、-s format jpegは、出力ファイルの形式をJPEG形式に設定するために使用されています。-s formatOptions 85は、JPEG形式で出力する際の圧縮率を85%に設定しています。
つまり、このコマンドでは、-sオプションを2回使用していますが、それぞれが異なるプロパティの設定に使用されています。第1の-sオプションは、出力形式を設定するために使用されており、第2の-sオプションは、出力形式がJPEGである場合の圧縮率を設定するために使用されています。