Eu não sei sobre o Automator; Eu usaria o bash (na linha de comando) para esse tipo de coisa.
Se você tiver o ImageMagick instalado (você deve ser capaz de obtê-lo de homebrew ), você pode use converter para cortar um lado ou outro de uma imagem.
Isso lhe dará o lado esquerdo da imagem (assim cortará a metade direita):
convert input.png -crop 50%x100%+0+0 output.png
torna-se
Isso lhe dará o lado direito (corte a metade esquerda da imagem):
convert input.png -gravity east -crop 50%x100%+0+0 output.png
torna-se
Para atuar em todos os arquivos que terminam com .png
em um determinado diretório, você pode colocá-lo em um bash para loop:
for f in *.png; do convert "$f" -crop 50%x100%+0+0 "${f%.*}-cropped.png"; done
Para fazer isso de forma recursiva (a cada *.png
no diretório de trabalho e a cada *.png
em qualquer subdiretório), use globstar:
shopt -s globstar; for f in **/*.png; do convert "$f" -crop 50%x100%+0+0 "${f%.*}-cropped.png"; done
Todos eles criarão um arquivo de saída separado (nesses exemplos, para cada file.png
, será criado um file-cropped.png
). Para trabalhar em arquivos sem criar uma saída separada, use mogrify
(a ferramenta complementar de convert
). Naturalmente, este irá sobrescrever seus arquivos existentes , portanto tenha cuidado ao usá-lo. Mogrify é capaz de receber múltiplas entradas da linha de comando, então não há necessidade de usar um loop para aqui:
mogrify -crop 50%x100%+0+0 *.png
## Recursively:
shopt -s globstar; mogrify -crop 50%x100%+0+0 **/*.png
Se você estiver trabalhando com um número realmente grande de arquivos (milhares), os globs acima podem sufocar; Nesse caso, você deve usar 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 '{}' \;
Você pode colocar qualquer uma dessas coisas em um script bash da seguinte forma:
#!/usr/bin/env bash
for f in *.png; do convert "$f" -crop 50%x100%+0+0 "${f%.*}-cropped.png"; done
exit 0
Ou uma versão mais agradável:
#!/usr/bin/env bash
for f in *.png; do
convert "$f" -crop 50%x100%+0+0 "${f%.*}-cropped.png"
done
exit 0
... salve isso em um arquivo de texto simples chamado algo como crop-left.sh
e defina-o como executável:
chmod u+x crop-left.sh
Para usá-lo na linha de comando, seria
./crop-left.sh
Eu não sei como encaixar isso no Automator, já que nunca usei esse programa, mas provavelmente ele pode ser feito.