PHP Imagick如何最适合文本注释

标签 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;

最佳答案

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

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

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

<?php

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

您可以查看 $width_of_text 并调整字体大小,只要字体未按您的喜好缩放即可。请记住,随着字体的增加,宽度和高度也会增加。

根据您尝试将其扩展到的目标,这可能会有所帮助。

关于PHP Imagick如何最适合文本注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7436815/

相关文章:

php - 将 CSS3 rotateY 转换为 PHP Imagick::distortImage

linux - 将 pdf 转换为具有相同质量的 Tiff

javascript - 如何在html中保存日期

javascript - 为什么我收不到邮件?

php - 如何测试输入字段是否包含外来字符?

php - 我如何将这个 ImageMagick 命令翻译成它的 PHP Imagick 等效命令?

php - 获取 OAuth2 访问 token 时出错 : 500 Error

php - 如何将选定的选项值作为文本字段的名称属性传递?

php - 如何使用 PHP Imagick 读取给定大小的 SVG?

Ubuntu 14.04 上的 php5-imagick