Imagick annotateImage: как установить положение текста слева вверху

Я пытаюсь создать функцию обертки вокруг annotateImage чтобы иметь возможность установить точную верхнюю и левую позиции данного текста. Метод по умолчанию устанавливает y-позицию от базовой линии, что означает, что нужно провести много экспериментов, если кто-то хочет нарисовать текст в точном месте на изображении. Это то, что я имею в виду…

$image->annotateImage($draw, 0, 0, 0, 'The quick brown fox');

В приведенном выше коде текст невидим, потому что позиция y равна 0. Поэтому, чтобы исправить это, я начал со следующей функции, где я добавляю смещение 40 к y …

function addText($image, $draw, $x, $y, $text) {
$y = $y + 40;
$image->annotateImage($draw, $x, $y, 0, $text);
}

addText($image, $draw, 0, 0, 'The quick brown fox'); // draw at 0, 0

Но это не очень надежно, поскольку не учитывает такие факторы, как размер шрифта и т. Д.

Какой лучший способ достичь этого?

1

Решение

Я нашел решение, которое хорошо работает. Если сила тяжести установлена ​​на «Северо-запад», текст стремится сохранить свою позицию x y в верхнем левом углу.

$draw->setGravity(Imagick::GRAVITY_NORTHWEST);
$image->annotateImage($draw, 0, 0, 0, 'The quick brown fox');
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]