オートマトンを使用して画像を50%水平にバッチトリミングできることは知っていますが、両側でトリミングされます...左側/右側だけで50%トリミングする必要があります。
Automatorについては知りません。この種のことには(コマンドラインで)bashを使用します。
ImageMagickがインストールされている場合( homebrew から取得できるはずです)、 convert を使用して画像の片側または別の側を切り取ることができます。
これにより、画像の左側が表示されます(したがって、右半分が切り取られます)。
convert input.png -crop 50%x100%+0+0 output.png
になります
これにより、右側が表示されます(画像の左半分を切り取ります)。
convert input.png -gravity east -crop 50%x100%+0+0 output.png
になります
指定されたディレクトリ内の.png
で終わるすべてのファイルを処理するには、bashforループに入れます。
for f in *.png; do convert "$f" -crop 50%x100%+0+0 "${f%.*}-cropped.png"; done
これを再帰的に行うには(作業ディレクトリのすべての*.png
、および任意のサブディレクトリのすべての*.png
)、globstarを使用します。
shopt -s globstar; for f in **/*.png; do convert "$f" -crop 50%x100%+0+0 "${f%.*}-cropped.png"; done
これらはすべて、個別の出力ファイルを作成します(これらの例では、file.png
ごとにfile-cropped.png
が作成されます)。個別の出力を作成せずにファイルを操作するには、 mogrify
(convert
のコンパニオンツール)を使用します。もちろん、これは既存のファイルを上書きするので、使用には注意してください。 Mogrifyはコマンドラインから複数の入力を受け取ることができるため、ここでforループを使用する必要はありません。
mogrify -crop 50%x100%+0+0 *.png
## Recursively:
shopt -s globstar; mogrify -crop 50%x100%+0+0 **/*.png
本当に膨大な数のファイル(数千)で作業している場合、上記のグロブが詰まる可能性があります。その場合は、find
を使用する必要があります。
## For convert:
find . -type f -name '*.png' -execdir bash -c 'convert "$0" -crop 50%x100%+0+0 "${0%.*}-cropped.png"' '{}' \;
## For mogrify:
find . -type f -name '*.png' -execdir mogrify -crop 50%x100%+0+0 '{}' \;
このようなものは、次のようにbashスクリプトに入れることができます。
#!/usr/bin/env bash
for f in *.png; do convert "$f" -crop 50%x100%+0+0 "${f%.*}-cropped.png"; done
exit 0
または、見栄えの良いバージョン:
#!/usr/bin/env bash
for f in *.png; do
convert "$f" -crop 50%x100%+0+0 "${f%.*}-cropped.png"
done
exit 0
...それをcrop-left.sh
のようなプレーンテキストファイルに保存し、実行可能ファイルとして設定します。
chmod u+x crop-left.sh
コマンドラインから使用するには、次のようになります。
./crop-left.sh
私はそのプログラムを使ったことがないので、これをAutomatorに合わせる方法がわかりませんが、おそらくそれは可能です。