1

Предположим, я хочу иметь два изображения рядом на слайде, но они имеют разные размеры. Я знаю, что могу использовать "mogrify" и "convert" и все такое, чтобы изменить их размер, но набирать точные параметры очень сложно.

Существует ли какой-либо инструмент или сценарий (и, например, с matlab все будет в порядке), который: изменяет размеры изображений для получения одинакового соотношения сторон и максимально сохраняет содержимое изображения?

Например, пусть W x H будет соглашением об именах. А - 400х300, а Б - 403х299. Таким образом, мы тогда сделаем A => 400x299 и B => 400x299; одинаковый размер и максимальная площадь сохраняется на обоих изображениях.

2 ответа2

1

если вы запускаете его из оболочки, то, вероятно, это сделают привязки Python ImageMagick. логика будет что-то вроде:

AW x AH  
BW x BH

if AW > BW:  
 scale(A BW/AW)  
else:
 scale(B AW/BW)  

if AH > BH:  
 scale(a BH/AH)  
else:  
 scale(B AH/BH)  

if AW > BW:  
 crop(A BWxBH)  
else:  
 crop(B AWxAH)  
0

Команда convert ImageMagick может сделать это за один раз. Но вы должны указать параметр resize, выполнив команду identify внутри другого. :-)

Изменение размера одного изображения в соответствии с размером другого

 convert \
    to-be-resized.orig.img \
   -resize $(identify \
                -ping \
                -format "%wx%h\!" \
                 master.img) \
    orig-is-resized.jpg

Обновление: О, я просто заметил, что моя команда не делает то, что вы хотели. Но почти. :-) Это все еще должно дать вам основную идею, как вы могли бы решить проблему. Должно быть легко перевести это в сценарий оболочки, который делает именно то , что вы хотите.

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