Используя ImageMagick версии 6, команда ниже создаст два выходных изображения.(Пример команды для ImageMagick версии 7 находится ниже в ответе.)
Первое выходное изображение будет обрезано из входного изображения, используя ограничивающий прямоугольник, начинающийся с w * 0,68xh * 0,47 и заканчивающийся на w *0,94xh * 0,82.
Вторым выходом будет вход с белой секцией, соответствующей подизображению, обрезанному для создания первого изображения.
convert input.png \
-set option:distort:viewport "%[fx:(w*0.94)-(w*0.68)]x%[fx:(h*0.82)-(h*0.47)]" \
\( +clone -distort affine "0,0 -%[fx:w*0.68],-%[fx:h*0.47]" \
-write result1.png -fill white -colorize 100 \) \
-set page "%[fx:u.w]x%[fx:u.h]+%[fx:t*(u.w*0.68)]+%[fx:t*(u.h*0.47)]" \
-flatten result2.png
, который начинается с чтениявведите изображение и вычислите область просмотра, размеры подизображения, которое нужно обрезать, в соответствии с предоставленными вами ограничительными рамками.
Затем в скобках он создает клон и выполняет "-distort affine"который, по сути, обрезает изображение и правильно находит его в этом окне просмотра.Он записывает этот результат в первое изображение вывода «result1.png».Затем, оставаясь внутри скобок, он заполняет этот обрезанный фрагмент белым.
После этого он устанавливает геометрию подкачки, чтобы в конечном итоге белый фрагмент мог быть скомпонован обратно в исходное положение поверх входного изображения.
Он завершается сглаживанием белого фрагмента на входном изображении и записывает второе выходное изображение "result2.png".
То же самое можно сделать с помощью ImageMagick версии 7 с несколько менее сложной командой..
magick input.png \
\( +clone \
-crop "%[fx:(w*0.94)-(w*0.68)]x%[fx:(h*0.82)-(h*0.47)]+%[fx:w*0.68]+%[fx:h*0.47]" \
-write result1.png -fill white -colorize 100 \) \
-flatten result2.png
Это выполняет вычисления непосредственно в операции "-crop", а геометрия подкачки сохраняется в кадрированном фрагменте, поэтому ее можно сплющить обратно в исходное положение без сброса геометрии.
Это синтаксис * nix.Чтобы это работало в Windows, измените обратную косую черту в продолжениях строки "\" на "^" и удалите те обратные косые черты, которые выходят за скобки "\ (... \)".