#imagemagick #graphicsmagick #pgmagick
#imagemagick #graphicsmagick #pgmagick
Вопрос:
Я успешно нарисовал некоторый текст на изображении с помощью pgmagick:
from pgmagick.api import Image
img = Image((300, 200))
img.annotate('Hello World')
img.write('helloworld.png')
но как получить ограничивающую рамку текста? Кто-нибудь может мне помочь?
Ответ №1:
Я ничего не знаю о pgmagick
но, возможно, это поможет, если я покажу вам пару вещей, которые вы можете сделать в командной строке с помощью ImageMagick.
Вариант 1
Используйте label
для создания холста, достаточно большого для желаемого текста, а затем спросите ImageMagick, насколько велика геометрия этого холста:
convert label:"Hello world" -format %G info:
62x15
Итак, размер шрифта «Hello world» по умолчанию равен 62 пикселям в ширину и 15 пикселям в высоту.
Вариант 2
Или используйте -annotate
так, как вы делали, а затем спросите ImageMagick, какого размера она была бы, если бы вы обрезали лишнее пространство вокруг нее:
convert -size 300x200 xc:red -annotate 10 20 "Hello world" -format %@ info:
61x8 10 12
Вариант 3
Создайте холст и пометьте его, затем обрежьте и получите размер:
convert -size 300x200 xc:red -annotate 10 20 "Hello world" -trim info:
xc:red XC 61x8 300x200 10 12 16-bit sRGB 0.000u 0:00.000
Вариант 4
Создайте холст, аннотируйте, обрезайте, сохраните, а затем получите размеры результата:
convert -size 300x200 xc:red -annotate 10 20 "Hello world" -trim result.png
identify result.png
result.png PNG 61x8 300x200 10 12 16-bit sRGB 887B 0.000u 0:00.000
Возможно (надеюсь), вы сможете адаптировать один из них к pgmagick
.