Você quer cortar e redimensionar a imagem:
mogrify -crop 800x520+0+300 -resize 320x200 *.jpg
E, como as fotos são diferentes, talvez seja necessário ajustar os parâmetros de corte por imagem. Com alguns scripts, você pode programaticamente ajustar esses parâmetros no entanto, por exemplo, criar um script bash cut-resize.sh
como abaixo e executá-lo com um argumento de nome de arquivo, portanto cut-resize.sh testimage.jpg
:
#!/bin/bash
origX='identify $1 | cut -d' ' -f3 | cut -dx -f1'
origY='identify $1 | cut -d' ' -f3 | cut -dx -f2'
offset=300
eval "mogrify -crop ${origX}x$(($origY/2))+0+$offset -resize 320x200 $1"
Fará quase a mesma coisa - cortar 50% do meio da imagem e depois redimensionar, para qualquer tamanho de imagem. Você pode adicionar argumentos e variáveis adicionais para que você possa especificar seu deslocamento e a quantidade a ser cortada, mas deixe seu script cuidar da configuração da geometria para imagemagick.
Ou no Windows, o seguinte exemplo de lote pode funcionar, não tenho idéia, só tenho uma caixa linux, mas o ponto é que você pode fazer o ajuste de script das variáveis:
file=%1
rem identify %file% | cut -d' ' -f3 | cut -dx -f1
for /f "tokens=3" %%G IN ('identify %file%') DO set temp=%%G
for /f "tokens=1" "delims=x" %%G IN ("%temp%") DO set oldx=%%G
for /f "tokens=2" "delims=x" %%G IN ("%temp%") DO set oldy=%%G
offset=300
newx=%oldx%
newy=%oldy%/2
mogrify -crop %newx%x%newy%+0+%offset% -resize 320x200 %file%
Uma boa referência para o script em lote, bash ou powershell é o link . A combinação de scripts com o Imagemagick é muito poderosa quando você cria seus fluxos de trabalho e scripts.