You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Imagick 3.7.0版本annotateImage方法文本每3字符添加异常咨询

Imagick 3.7.0 annotateImage 文本渲染异常:仅间隔3个字符显示内容

问题背景

更新Imagick模块至3.7.0版本后,原正常运行的PHP图片文本渲染代码出现异常:annotateImage方法无法完整渲染指定文本,仅每隔3个字符显示一个内容。

当前环境

  • Imagick 扩展版本:3.7.0
  • PHP 版本:7.4
  • ImageMagick 核心版本:6.9.12-73

原可正常运行代码

$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel('gray');

$image->newImage(800, 75, $pixel);

$draw->setFillColor('black');

$draw->setFont('./LINESeedJP_A_OTF_Rg.otf');
$draw->setFontSize(30);

$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');

$image->setImageFormat('png');
$image->writeImage('./a.png');

异常表现

生成的图片中,目标文本仅零散显示部分字符,呈现每隔3个字符才渲染的异常状态。

排查与解决方向

  • 更换字体文件测试:部分OTF字体与Imagick 3.7.0存在兼容性问题,可尝试改用其他字体(如系统默认字体)验证
  • 降级Imagick扩展:回退到之前能正常运行的版本(如3.6.x系列),确认是否为新版本的bug
  • 检查字体加载状态:使用Imagick::queryFonts()方法,确认目标字体是否被Imagick正确识别
  • 升级ImageMagick核心版本:尝试将ImageMagick升级至更高稳定版本,修复可能的底层兼容性问题

内容的提问来源于stack exchange,提问作者re1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:31:03