2017-01-22 20 views
0

Я пытаюсь аннотировать изображения с помощью ImageMagick, который хорошо подходит для короткого текста, который соответствует ширине входного изображения. Например, чтобы включать в себя название "The Apollo запуск ракеты" к изображению (например, rocket.png), я использую код ниже:Как сделать автоматическую печать меток в соответствии с шириной изображения с помощью Image Magick?

convert rocket.png -background Khaki \ 
-font Helvetica -pointsize 30 label:'The Apollo Rocket Launch' \ 
+swap -gravity Center -append output.png"; 

Полученное изображение:

enter image description here

Однако , если название длиннее, чем ширина изображения, а затем ImageMagick добавляет дополнительную ширину, чтобы соответствовать в тексте (без каких-либо дополнений), как показано на рисунке ниже:

enter image description here

Я хотел бы обернуть текст в следующую строку после того, как вы приняли во внимание ширину входного изображения. Один из вариантов заключается в том, чтобы вручную ввести \ n символов в тексте, который ImageMagick будет автоматически подавать на следующую строку. Но я бы хотел, чтобы он автоматически настраивал (реагировать) в зависимости от ширины изображения без использования \ n символов. Возможно ли это в ImageMagick?

ответ

0

Я нашел ответ на этот вопрос. Только caption имеет возможность автоматического переноса слов. This link подробности. Мне просто пришлось изменить код, используя caption вместо label. Указывая -size, заголовок ограничен шириной до указанного размера. Здесь я указываю ширину 530px и не указываю высоту, которая будет отрегулирована автоматически. Я также указать -gravity Centercaption перед тем, чтобы текст автоматически центрируется:

convert rocket.png -background Khaki -size 530x \ 
-font Helvetica -pointsize 30 -gravity Center \ 
caption:'The Apollo Rocket Launch- A Mission Accomplished' \ 
+swap -gravity Center -append output.png 

Результат:

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^