Как изменить размер изображения в списке изображений до того же размера - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу применить маску к изображению с помощью ImageMagick.Но так как изображение и маска имеют разный размер, я хочу растянуть / масштабировать маску, чтобы соответствовать изображению.

Обычно входное изображение имеет размер 2000x500px, но может быть 1000x500px или что-то ещеи маска 400x200px.

Так что, если бы я знал, что входное изображение всегда будет 2000x500px, я мог бы сделать:

# Resize all images in the list to 2000x500
convert inputfile.png mask.png -resize 2000x500\! \
    -compose over -composite \
    outputfile.png

или

# Resize only the mask to 2000x500
convert inputfile.png \
    \( mask.png -resize 2000x500\! \) \
    -compose over -composite \
    outputfile.png

Но моя проблемаэто я не знаю размер входного файла!Так как мне изменить размер маски до размера первого изображения в списке?

1 Ответ

2 голосов
/ 12 апреля 2019

С ImageMagick вы можете изменить размер маски в соответствии с размерами входного изображения, используя функцию масштабирования «-distort SRT».Пример команды может выглядеть примерно так ...

convert input.png mask.png \
   -set option:distort:viewport %[fx:u.w]x%[fx:u.h] \
   -distort SRT "0,0 %[fx:u.w/s.w],%[fx:u.h/s.h] 0 0,0" \
   -composite result.png

Это задает в окне просмотра размеры входного изображения, а затем масштабирует оба изображения в соответствии с этим окном просмотра.Разумеется, размер входного изображения не изменяется, поскольку он масштабируется до 1 / 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...