Если вы довольны решением Linux, то это сделает это:
#!/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 \;
Таким образом, этот скрипт ищет все файлы в каталоге FULLSIZE
и ниже. Он использует if, чтобы проверить, существует ли файл с таким же именем в SMALLSIZE
, и, если нет, использует команду imagemagick convert
чтобы изменить размер изображения, чтобы поместить его в поле MAXWIDTH
wide и MAXHEIGHT
high, и поместить его в каталог SMALLSIZE
,
Извините, у меня не было времени протестировать скрипт, надеюсь, он не содержит ошибок.