разделить изображение по горизонтали на две неравные части?

avatar
user3236841
9 августа 2021 в 04:12
169
2
1

У меня есть следующее изображение:

enter image description here

Я хотел бы использовать ImageMagick, чтобы разделить его по горизонтали на две неравные части по 40-60% (слева направо). Как мне это сделать?

Источник

Ответы (2)

avatar
fmw42
9 августа 2021 в 04:37
2

В ImageMagick 6 это можно сделать следующим образом. Считайте изображение в память MPR и удалите оригинал. Затем используйте копию MPR, чтобы кадрировать один раз на 40% с гравитацией на запад и снова на 60% с гравитацией на восток (то есть 40% с левой стороны, а затем 60% с правой стороны). Запишите эти изображения, а затем выйдите без вывода, т.е. null:

Синтаксис Unix:

convert red_rect.png +repage -write mpr:img +delete \
\( mpr:img -gravity west -crop 40x100%+0+0 +repage +write left.png \) \
\( mpr:img -gravity east -crop 60x100%+0+0 +repage +write right.png \) \
null:

Для Windows,

convert red_rect.png +repage -write mpr:img +delete ^
( mpr:img -gravity west -crop 40x100%+0+0 +repage +write left.png ) ^
( mpr:img -gravity east -crop 60x100%+0+0 +repage +write right.png ) ^
null:

(В файле .bat удвоить % до %%)

(Для ImageMagick 7 измените преобразование на magick)

Слева:

enter image description here

Справа:

enter image description here

avatar
Mark Setchell
9 августа 2021 в 17:11
1

Просто для удовольствия, немного другая версия:

  • загрузить изображение
  • создать клон, обрезать левую сторону и сохранить, удалить клон
  • вернуться к исходному, обрезать правую часть и сохранить

magick GhLiu.png +repage \( +clone -crop 40x100%+0+0 +repage +write left.png +delete \) -gravity east -crop 60x100%+0+0 +repage right.png
user3236841
9 августа 2021 в 17:48
0

Это работает для линукса? что такое магия? у меня нет такой команды

Mark Setchell
9 августа 2021 в 18:40
0

magick — это версия 7. Если у вас v6, используйте convert вместо magick.

user3236841
9 августа 2021 в 19:19
0

Хорошо, у моей Fedora 34 6.9. Спасибо!