Используя ImageMagick, вам нужно всего два mogrify
прохода: один, чтобы увеличить те, которые меньше требуемого минимума, и один, чтобы уменьшить те, которые больше максимума. Например, для пакетного изменения размера нескольких файлов JPEG:
mogrify '*.jpg[!200x150<]'
mogrify '*.jpg[!275x225>]'
Первый проход увеличивает те, которые меньше, чем 200x150, а второй сокращает те, которые больше, чем 275x225 (да, знаки верны!). mogrify
заменяет исходные изображения, , что вам нужно сделать в этом случае , чтобы избежать повторного изменения размеров изображений при каждом проходе и получения двух обработанных копий.
Даже если они проходят два прохода, вы обрабатываете каждое изображение только один раз (почти, см. Ниже). Первый обрабатывает x % изображений, а другой проход обрабатывает оставшиеся 100- x % (плюс c , см. Ниже), принимая все изображения, необходимые для быть изменены.
! используется для принудительного изменения аспекта для изображений, которые находятся за пределами диапазона (наша константа c ), таких как изображение размером 1200x100, которое не подходит ни для 275x225, ни для 200x150. Эти изображения будут обработаны дважды : на первом проходе аспект ниже диапазона (высота или ширина) будет увеличен до минимума, а на втором проходе другой аспект будет уменьшен до максимума.
Надеюсь, это поможет.