Вот как я это воспринимаю - это довольно самоуверенно, и другие могут редактировать и добавлять свои идеи.
label:
Как и другие операторы, содержащие двоеточие (:
),Например, gradient:
, xc:
, logo:
, оператор label:
создает свой собственный холст.Это означает, что вы не рисуете / печатаете текст на существующем изображении, а просто рисуете / печатаете свой текст, и это создает фон для этого текста.
Если вы предварительно укажете -size
,он создаст холст такого размера и поместит на него текст с наибольшим размером точек, который подходит.Итак, давайте попробуем широкий фиксированный размер:
convert -background black -fill white -gravity center -size 800x100 label:'Stack Overflow' text.png
А также узкий фиксированный размер:
convert -background black -fill white -gravity center -size 100x100 label:'Stack Overflow' text.png
Если вы не укажете -size
заранее, он создаст текст с заданным размером точки и поместит его на холст подходящего размера.Итак, давайте попробуем маленький размер точки без размера холста:
convert -background black -fill white -gravity center -pointsize 16 label:'Stack Overflow' text.png
А также большой размер точки без размера холста:
convert -background black -fill white -gravity center -pointsize 64 label:'Stack Overflow' text.png
Вы также можете указать только ширину, но не высоту, например, с помощью -size 200x
, или только высоту, но не ширину, например, -size x50
, и он будет использовать самый большой шрифт, который может быть ограничен указанным измерением.
Следующее должно дать вам представление о том, на какие атрибуты текста вы можете повлиять:
convert -background black -fill yellow -strokewidth 2 -stroke magenta \
-undercolor blue -size 400x100 -gravity center -font 'AppleChancery' label:'Stack Overflow' text.png
caption:
похож на label:
, но также выполняет перенос слов, поэтому он будет распределять длинное предложение по нескольким строкам для вас всех на своемown.
pango:
- достаточно сложный язык разметки, напоминающий HTML, который позволяет изменять шрифты, цвета, полужирный, курсив, нижние индексы, верхние индексы и другие текстовые функции в середине предложения.
-draw "text 10,10 'Your message'"
несколько устарел, но он позволяет вам рисовать на существующеммаг в определенном месте, например, 10,10
, показанном выше.Обратите внимание, что в нем нет двоеточия (:
), поэтому вам необходимо иметь изображение / холст для рисования.
-annotate
действительно заменяет -draw
.Как и -draw
, вам нужно иметь холст / изображение, на котором уже можно рисовать, но тогда он позволяет вам с большей легкостью позиционировать, сдвигать и вращать текст, чем с -draw
.
ЭнтониТиссен дает превосходное обсуждение всех этих вещей, и больше здесь .