1

Мне нужно создать миниатюру для всех изображений в папке, как это (пример)

Исходное изображение:

Что я хочу:

Я пробовал эту команду

mogrify *.jpg -gravity center -thumbnail 350x200 *.jpg

Что я получаю с этой командой:

Платформа - Windows 7.

2 ответа2

1

Миниатюра - это небольшая версия графика.

Вы, кажется, хотите обрезанный фрагмент оригинала, а не миниатюру. Итак, вы используете неправильную команду. :)

Вы захотите изменить размер изображения до одного из ваших желаемых размеров, а затем использовать команду (и) обрезки, чтобы сделать копию нужного вам раздела.

1

Вы хотите обрезать и изменить размер изображения:

mogrify -crop 800x520+0+300 -resize 320x200 *.jpg

И да, поскольку ваши изображения отличаются, возможно, вам придется настроить параметры кадрирования для каждого изображения. С помощью некоторых сценариев вы можете программно настроить эти параметры, например, создав сценарий bash cut-resize.sh как показано ниже, и запустив его с аргументом имени файла, поэтому 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"

Будет делать почти то же самое - вырезать средние 50% изображения, а затем изменить его размер для любого размера изображения. Вы можете добавить дополнительные аргументы и переменные, чтобы указать смещение и сумму обрезки, но пусть ваш скрипт позаботится о настройке геометрии для imagemagick.

Или на Windows, следующий пакетный пример может работать, я понятия не имею, у меня есть только окно Linux, но дело в том, что вы можете написать скрипт для настройки переменных:

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%

Хорошим справочником по пакетным, bash или сценариям powershell является http://ss64.com/. Сочетание сценариев с Imagemagick очень эффективно, когда вы создаете свои рабочие процессы и сценарии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .