PHP想象一下如何最好地适应文本注释

DrK*_*ter 4 php imagick

我正在将注释文本添加到newPseudoImage,它工作正常,但我想使文本比例适合图像大小.

我有什么想法可以做到这一点?

$im = new Imagick();
$draw = new ImagickDraw();

$draw->setFillColor($color);
$draw->setFont($font);
$draw->setFontSize(($width, $height) / 100) * 15);
$draw->setGravity(Imagick::GRAVITY_CENTER);

$im->newPseudoImage($width, $height, "canvas:{$bg}"); 
$im->annotateImage($draw, 0, 0, 0, $text);

$draw->clear();
$draw->destroy();

$im->setImageFormat('gif');

header("Content-Type: image/gif");
echo $im;
Run Code Online (Sandbox Code Playgroud)

dre*_*010 8

我想你可以使用imageftbbox功能来帮助你.

这将为您提供文本字符串的边界框,具有给定的ttf字体,大小和角度.

只要文本不适合图像,您就可以创建一个增加或减少字体大小的循环.

<?php

$bbox = imageftbbox(12, 0, 'Arial.ttf', 'This is a test');
$width_of_text = $bbox[2] - $bbox[0];
Run Code Online (Sandbox Code Playgroud)

$width_of_text只要字体不符合您的喜好,您就可以查看并调整字体大小.请记住,随着字体的增加,宽度和高度都会增加.

取决于您尝试将其缩放到可能有帮助的地方.