За последние 24 часа нас посетили 22654 программиста и 1277 роботов. Сейчас ищут 813 программистов ...

Imagick::queryFontMetrics выдает размер с ошибкой

Тема в разделе "Прочие вопросы по PHP", создана пользователем Juri, 28 июл 2019.

Метки:
  1. Juri

    Juri Новичок

    С нами с:
    28 июл 2019
    Сообщения:
    1
    Симпатии:
    0
    Добрый день.
    Пробую Imagick::queryFontMetrics.

    Задача: сгенерировать картинку из текста и фона, наложив текст на фон.
    Не работает: тест не помещается в заданный размер.
    Получаемый в функцию текст проверяю на длину строки вызовом
    $im = new \Imagick();
    $draw = new \ImagickDraw();
    $draw->setFont("fonts/OpenSans-Bold.ttf");
    $draw->setFontSize(21);
    queryFontMetrics($draw, $currentLine)['textWidth'];
    чтобы помещались слова целиком.
    результат queryFontMetrics получается 526 пикселей при ширине box в 531 пиксель.
    Но когда вызываю convert -size 531x -background black -fill white -pointsize '21' -font OpenSans-Bold.ttf ...
    то текст выпадает за размер 531 ...
    в чем ошибка ?
    Что не так с измерением через queryFontMetrics ?
    Пробуя разнию длину выяснил, что при результате от queryFontMetrics в 517 текст в размер помещается.
    Еще заметил, что если измерять через queryFontMetrics части строки, например 4 части, то сумма размеров этих частей будет меньше, чем размер полной строки.
    Что не так с измерением через queryFontMetrics ?