[Instagram]横長画像を左右二分割するスクリプト
Instagramで横長画像を左右に分割し、繋がっているような2枚の縦長画像を投稿することが多いので、Autometorを使いクイックアクションで処理できるようにスクリプトを作成
入力した3:2の画像が左右で4:5の縦長画像として分割される
4:5なのはInstagramの縦長画像の比率がそうであるため
以下がスクリプト
for f in "$@"
do
# 画像のサイズを取得 (フルパスを指定)
dimensions=$(/usr/local/bin/identify -format "%wx%h" "$f")
width=$(echo $dimensions | cut -d'x' -f1)
height=$(echo $dimensions | cut -d'x' -f2)
# 8:5の比率を計算 (幅に基づく)
new_height=$(( width * 5 / 8 ))
# 画像を8:5の比率でクロップ (中央から)
/usr/local/bin/convert "$f" -gravity center -crop ${width}x${new_height}+0+0 +repage "${f%.*}_cropped.${f##*.}"
# 左側の分割 (クロップ後の左半分)
/usr/local/bin/convert "${f%.*}_cropped.${f##*.}" -crop $((width / 2))x${new_height}+0+0 +repage "${f%.*}_left.${f##*.}"
# 右側の分割 (クロップ後の右半分、幅の半分をオフセット)
/usr/local/bin/convert "${f%.*}_cropped.${f##*.}" -crop $((width / 2))x${new_height}+$((width / 2))+0 +repage "${f%.*}_right.${f##*.}"
# クロップした一時ファイルを削除
rm "${f%.*}_cropped.${f##*.}"
# 元の画像のファイル名の先頭に「_」を追加
mv "$f" "$(dirname "$f")/_$(basename "$f")"
done