gpt4 book ai didi

php - ImageMagick unicode 字体在 Linux 上安装不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 04:29:32 26 4
gpt4 key购买 nike

我在 CentOS Linux 服务器上安装了 ImageMagick。

我正在尝试让 ImageMagick 将 unicode(非罗马)字体转换为图像。我可以使用基于罗马/拉丁的字体来执行此操作,但不能使用非拉丁字体,例如中文。

编辑* 当我尝试转换非拉丁字体时,它们显示为垃圾,例如 %$??W*??

我已在系统上安装了 unicode 字体并将 ImageMagick type.xml 文件更新为反射(reflect)这一点(我也更新了我的定位数据库)。

当我运行时(在我的 shell 中):# recognize -list Type

我可以看到我的字体已安装并且 ImageMagick 可以看到它们,但当我运行文本到图像转换 php 脚本时它们(非拉丁字体)仍然不起作用

我查看了另一篇与此相关的文章: Make ImageMagick recognize a font

但是在完成所有操作后我仍然遇到同样的问题。请帮忙。

谢谢。

编辑:这是与 imagemagick 初始化相关的一些代码:

            $font = 'UNICODE.TTF';  
/* Create imagickdraw object */
$draw = new ImagickDraw();
$draw->setFont($font);
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
$draw->setFontSize(100);
$draw->setTextEncoding("UTF-8");

//and than there is a bunch of code I use to manipulate the image shadow etc.

更新自从通过这篇文章的评论获得帮助以来,我了解到:

  1. ImageMagick 能够转换 unicode 非拉丁字符这是通过 Linux 命令行将希伯来语单词传递给 ImageMagick 进行测试的。

  2. 因此,问题在于 ImageMagick PHP 模块解释 unicode 非拉丁文本的能力。

  3. php 文件本身具有支持 UTF-8 的所有必要元素,并且实际上创建了一个文件的文件名源 self 传递给 ImageMagick 进行图像创建的相同文本变量。文件名已通过 php 以非拉丁 unicode 文本成功保存在我的服务器上。

我在网上查了一下,没有找到有关此问题的任何信息使用 ImageMagick PHP 模块从 unicode 非拉丁字体的文本创建图像。

这可能是 ImageMagick 的错误吗?任何帮助,将不胜感激。谢谢。

最佳答案

此问题的解决方案是在此处未看到的编码问题中找到的,该问题稍后在我的 PHP 中出现。基本上我将字符串分成单独的字符,并且需要以一种不会的方式这样做销毁 2 字节 unicode 字符。

我不想向试图帮助我解决这个问题的人展示我的其余代码对我来说是一个很大的错误。吸取的教训。

关于php - ImageMagick unicode 字体在 Linux 上安装不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com