PHP Imagick如何最适合文本注释

2024-04-12

我正在将注释文本添加到 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(使用前将#替换为@)

PHP Imagick如何最适合文本注释 的相关文章

  • Magento 中的子域 htaccess 问题

    public html www domain com public html subdomain subdomain domain com public html htaccess public html subdomain htacces
  • PHP 用星号替换所有字符

    假设我有一个字符串形式的密码 password thisisaplaintextpassword 我怎样才能把它变成下面的样子 password 我想通过电子邮件向用户发送他们的帐户详细信息 但不想发送整个内容 Use 字符串重复 http
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam
  • PHPExcel下载文件

    我想下载使用 PHPExcel 生成的 Excel 文件 我按照以下代码PHPExcel 强制下载问题 https stackoverflow com questions 26265108 phpexcel force download i
  • 压缩 zend Framework 2 的 html 输出

    我目前正在 PHP 5 4 4 上使用 Zend Framework 2 beta 开发个人 web 应用程序以用于自学目的 我想知道是否可以在 html 输出发送到浏览器之前拦截它 以便通过删除所有不必要的空格来缩小它 我怎样才能在ZF2
  • Magento - 将特定父类别的子类别列为链接

    我是 php 的初学者 并且一直试图将一个父类别的子类别作为链接调用 我得到了这个 它调出了 getName 但 getUrl 根本没有返回任何 URL 输出代码只是 li a href name of sub a li
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • 运行 Composer 返回:“无法打开输入文件:composer.phar”

    我是 symfony2 和阅读新手symblog http tutorial symblog co uk tutorial parts 在第三章中 在尝试使用数据装置时 我尝试了以下命令 php composer phar update 但
  • php - 我应该加密电子邮件地址吗?

    当用户注册时 我应该将他们的电子邮件按原样存储在数据库中还是对其进行哈希处理 我希望稍后能够解密 那么我应该使用 md5 吗 谢谢你 No md5 is 单向哈希函数 http en wikipedia org wiki Cryptogra
  • php 中的简单授权/登录功能

    我希望第一次实现用户登录到我的网站 我很高兴构建自己的解决方案 或者实现一些开源的东西 但是到目前为止 在我的搜索中没有任何包是明显的选择 同样 我完全意识到 作为一名中级 php 程序员 如果我推出自己的解决方案 并真正敞开大门 我很可能
  • 如何以编程方式获取 WooCommerce 中的所有产品?

    我想获取 WooCommerce 中的所有产品数据 产品 sku 名称 价格 库存数量 可用性等 我可以使用 wp query 来做到这一点吗 这样你就可以通过 wp query 获取所有产品 global wpdb all product
  • CakePHP Xml 实用程序库触发 DOMDocument 警告

    我正在使用 CakePHP 在视图中生成 XMLXML核心库 http book cakephp org 2 0 en core utility libraries xml html xml Xml build data array ret
  • PHP中如何识别服务器IP地址

    PHP中如何识别服务器IP地址 对于服务器 ip 来说是这样的 SERVER SERVER ADDR 这是港口的 SERVER SERVER PORT
  • 使用 DOJO 自动完成文本框

    我正在寻找一种使用 DOJO 进行文本框自动建议的简单方法 我将查询的数据库表 使用 PHP 脚本 以 JSON 形式返回 有超过 100 000 条记录 因此这确实不应该采用 FilteringSelect 或 ComboBox 的形式
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • Azure 上的“phpcomposer.phar install”出现“无法终止进程”错误

    我正在尝试将我的 Symfony 2 应用程序部署到 Microsoft Azure 网站云 为此 我按照本指南中的步骤操作http symfony com doc current cookbook deployment azure web
  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • PHP 和 NLP:嵌套括号(解析器输出)到数组?

    想要将带有嵌套括号的文本转换为嵌套数组 以下是 NLP 解析器的输出示例 TOP S NP PRP I VP VBP love NP NP DT a JJ big NN bed PP IN of NP NNS roses 原文 我喜欢一大床
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function

随机推荐

  • 将向量声明为类成员

    我在头文件中有简单的类 a hh ifndef a hh define a hh class a public int i a i 0 endif 然后我有一个文件 b cc include
  • 是否可以使用 Groovy XMLSlurper 解析子树

    有谁知道是否可以以某种方式使用 XMLSlurper 这意味着可以从非常大的 XML 文档中提取各个子树并单独进行处理 想象一下 您有一个巨大的 XML 提要 其中包含一个根元素 该根元素具有数千个可以单独处理的直接子元素 显然 将整个文档
  • 对于 Emacs,如何将 view-lossage 收集的内容存储到外部文件中?

    对于 Emacs 我如何存储内容view lossage收集到外部文件中 理想情况下 我希望将这些击键数据自动增量地存储到外部日志文件中 这意味着在 Emacs 启动时默认情况下会这样做 至少在 Emacs 24 中 我现在无法检查之前的版
  • .NET:如何有效地检查 50,000 个项目的 List 中的唯一性?

    在某些库代码中 我有一个可以包含 50 000 个或更多项目的列表 库的调用者可以调用导致将字符串添加到列表中的方法 如何有效地检查所添加字符串的唯一性 目前 在添加字符串之前 我会扫描整个列表并将每个字符串与要添加的字符串进行比较 当超过
  • 结构有对象且无法复制

    我正在尝试从我的第一个 MQL4 专家顾问开始 我创建了一个struct处理我的订单 struct Order int pair int command double quantity double entry double stopLos
  • 从 GPS 点绘制线

    我有大约 100 个 GPS 坐标列表 我想画出每个列表所构成的线 使用散点图绘制的列表之一 看起来有点像这样 显然那里有一条线 我尝试了几种方法来对 GPS 位置进行排序并绘制它们 lats lngs with open filename
  • MSMQ如何管理消息?

    看来MSMQ不使用任何数据库管理系统来管理消息 MSMQ如何管理消息 它将消息存储在平面文件中吗 我正在尝试实现一个消息管理系统 MSMQ 使用位于 windir system32 msmq 中的平面文件 如果你想实现自己的队列 我建议你看
  • 反序列化 json 数组以列出 wp7

    我需要从 json 内的子数组获取数据 但它没有转换成列表 下面是我的 json 字符串 responseCode 0 responseObject TotalRecords 25 TotalDisplayRecords 25 aaData
  • 如何使用 Ninject InRequestScope 处理异步调用?

    我们正在使用Ninject in an ASP NET Web API应用程序 然后我们绑定我们的DbContext with InRequestScope 这对于我们的大多数请求都很有效 因为它们同步完成所有工作 因此可以在请求完成后安全
  • 精确存储大整数

    在R软件中 a lt 123456789123456789123456789 sprintf 27f a 1 123456789123456791337762816 000000 我得到了错误的答案 我想要准确的a value 为什么系统显
  • Spring Batch 框架 - 自动创建批处理表

    我刚刚使用 Spring Batch 框架创建了一个批处理作业 但我没有运行 CREATE SQL 的数据库权限 当我尝试运行批处理作业时 框架尝试创建 TABLE BATCH INSTANCE 时遇到错误 我尝试禁用
  • 如何在 Julia 中提供可重现的样本数据

    Here on stackoverflow com 当我提供样本数据来制作可重现的示例时 我该如何以朱利安方式做到这一点 In R例如dput df 将输出一个字符串 您可以用它来创建df再次 因此 您只需将结果发布到 stackoverf
  • 当日期是日期时间且时间是字符串时,合并日期和时间

    我正在使用一个旧的 mysql 数据库 其中日期存储 没有时间 作为日期时间 时间存储为字符串 没有日期 在 C 中 我有一个 DateTime 其值类似于2010 06 25 12 00 00 AM和一个具有如下值的字符串15 02 在没
  • 禁用 Oracle 中所有作业的脚本(DBMS_JOB 包)?

    我正在寻找一个禁用所有作业的脚本 现在 我在 Toad 中将它们全部突出显示 单击脱机按钮 然后提交更改 在 PL SQL 中必须有一种方法来做到这一点 如果要阻止所有作业运行 可以更改初始化参数JOB QUEUE PROCESSES 如果
  • 避免在处理 config.properties 的 Java 类文件中使用静态方法和变量

    我正在开发一个简单的 Java 应用程序 并且创建了一个名为 Config java 的类来处理应用程序属性 从而避免硬编码 Config java 类不是静态类 我正在另一个名为 Serial java 的类中创建 Config java
  • 死信交换 RabbitMQ 丢弃消息

    我正在尝试在 RabbitMQ 中实现 dlx 队列 场景很简单 我有 2 个队列 1 活着 2 死亡 x dead letter exchange 立即 x message ttl 5000 以及 立即 交换 这必然是 1 活着 我尝试运
  • 当终端大小调整时,Ncurses 程序退出

    当我调整终端窗口大小时 以下程序退出 为什么以及如何阻止它 include
  • 如何在java程序中获取kafka消耗滞后

    我写了一个java程序来消费来自kafka的消息 我想监控消费延迟 如何通过java获取它 顺便说一句 我用
  • Java如何检测文件变化

    有没有办法以某种方式触发一个事件 每次文件更改时都会执行某些操作 我的意思是类似的东西 用伪代码 if DetectedFileModified pathToFile do stuff 我知道我可以定期执行此操作 但我可以在没有计时器的情况
  • PHP Imagick如何最适合文本注释

    我正在将注释文本添加到 newPseudoImage 中 该图像工作正常 但我想让文本缩放以适应图像大小 我有什么想法可以做到这一点吗 im new Imagick draw new ImagickDraw draw gt setFillC