Se você está feliz com uma solução Linux, então isso seria necessário:
#!/bin/bash
FULLSIZE=/path/to/photos
SMALLSIZE=/path/to/smallphotos # do not locate within FULLSIZE directory
MAXWIDTH=1024
MAXHEIGHT=768
cd $FULLSIZE
find . -name '*.jpg' -exec if [ ! -f $SMALLSIZE{} ] then; do convert -resize $MAXWIDTHx$MAXHEIGHT $FULLSIZE{} $SMALLSIZE{} ; done \;
Portanto, este script procura todos os arquivos no diretório FULLSIZE
e abaixo. Ele usa um if para verificar se há um arquivo com o mesmo nome no diretório SMALLSIZE
e, caso contrário, usa o comando imagemagick convert
para redimensionar a imagem para caber em uma caixa MAXWIDTH
wide e MAXHEIGHT
alta e coloca no diretório SMALLSIZE
.
Desculpe, não tive tempo de testar o script, espero que esteja livre de erros.