(обратите внимание, что quote_blank.jpg — это фоновое изображение размером 400×400, на котором текст отображается и находится в том же каталоге, что и файл php).
Проблема в том, что заголовок наполняет псевдоизображение 380×250 только небольшим количеством коротких слов. Любая длина любой длины приводит к тому, что только верхняя половина (или меньше) поля содержит какой-либо текст (кроме аннотации атрибуции).
Кажется, что PseudoImage работает правильно, но алгоритм ImageMagick для расчета размера шрифта предназначен только для заполнения ширины, а не высоты. Я понятия не имею, как он решает, какую длину строки выбрать (что, в свою очередь, по-видимому, диктует размер шрифта и, следовательно, количество строк и вертикальное покрытие поля заголовка).
Поэтому я предполагаю, что мой вопрос заключается в следующем: есть ли способ изменить методы вычислений, чтобы заполнить как можно большую часть поля заголовка, горизонтального и вертикального?
Пример нескольких слов, показывающих, что заголовок может быть в полный рост:
Образец более типичной длины текста, показывающий, что он не заполняет прямоугольник по вертикали
Я проверил ваш код с ImageMagick 6.8.9-8 и получил следующий вывод, который лучше, чем вы получаете. Если вы используете более старую версию, попробуйте обновить ImageMagick.
1
Другие решения
Виниций Пинто сразу же получил правильный ответ. Но обновление не было так просто на общем сервере — я не понял, как заставить Imagick использовать обновленную версию. Поэтому мне пришлось переписать свой код для доступа к ImageMagick через командную строку, которой я хотел поделиться. Насколько я могу судить по комментарию, код не отображается должным образом, так что извините за измену функции ответа.