我正在将注释文本添加到 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;
我认为你可以使用图像ftbbox https://php.net/imageftbbox功能来帮助你。
这将为您提供文本字符串的边界框,具有给定的 ttf 字体、大小和角度。
只要文本没有正确适合图像,您就可以创建一个循环来增大或减小字体大小。
<?php
$bbox = imageftbbox(12, 0, 'Arial.ttf', 'This is a test');
$width_of_text = $bbox[2] - $bbox[0];
你可以看看$width_of_text
并调整字体大小,只要字体未按您的喜好缩放即可。请记住,随着字体的增加,宽度和高度也会增加。
根据您尝试将其扩展到的范围可能会有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)