Bhu*_*hah 5 php imagettftext emoji
我正在使用 imagettftext 函数在图像上写入文本,但我的文本包含笑脸,它将笑脸替换为方框
这是我的代码:
$black = imagecolorallocate ( $main_img, 0x00, 0x00, 0x00 );
$font_path = "Arial.ttf";
imagettftext ( $main_img, 14, 0, 73, 685, $black, $font_path, $text );
Run Code Online (Sandbox Code Playgroud)
文本示例:
test testt Hello Those Mega x ?? Graphic
Run Code Online (Sandbox Code Playgroud)
我曾尝试更改“Arial Unicode”字体,但未解决问题。
我该如何解决这个问题?
提前致谢。
首先,我们需要了解表情符号是如何实现的:
Apple 的 PNG 图像(SBIX 表)
Apple 使用 TrueType/OpenType 规范的专有的、未发布的扩展来实现它,以将 PNG 图像添加到字体中。这些 PNG 图像然后显示在运行文本中。谷歌也实现了类似的东西,但它与苹果的解决方案不兼容。
Mozilla 和 Adobe 的 SVG(SVG 表)。
这两个网络巨头为了最雄心勃勃的格式聚在一起:OpenType 中的 SVG。我们不是将 Unicode 字符映射到字形,而是将其映射到 SVG 图像。这为我们带来了 SVG 的所有可爱的附加功能,包括渐变、嵌入的位图图像甚至动画。自 26 版以来,Firefox 已支持它!
微软 COLR/CPAL
默认情况下,新的 Segoe UI 表情符号字体的行为类似于常规 TrueType/OpenType 字体。它具有 Unicode 编码的、未着色的“基本字形”。但是字体中有两个附加表:COLR 表将附加字形作为层链接到基本字形,并定义这些层的顺序。CPAL(“调色板”)表为各个层存储一个或多个调色板。(不同的调色板对于在深色和浅色背景上显示字体很有用。)因此,当支持此新颜色功能时,基本字形将替换为彩色图层。
Google 的 PNG 图片(CBDT/CBLC 表)。
Google 提出了一种使用 PNG 图像作为字形的实现。字形简单地替换为好的旧图像。这适用于较小的图标,显然带来了位图图像的所有创作自由,但不能很好地缩放。把一个足够大的字形炸开,你会遇到模糊的像素。使用 CSS 更改字形的颜色也很困难,如果不是不可能的话。有趣的是,他们指定在他们的实现中不应该有 GLYF 表——保存未着色的“正常”字形的表——所以当不支持这种格式时,看起来没有后备。它已经在 Android 和 Linux 上使用的FreeType 中实现,但是 OpenType 的提议也将把它带到 Windows 和 Apple 机器上。
最后一种方法是我们感兴趣的。这是因为imagefttextPHP GD 扩展提供的功能。GD 内部使用 FreeType 库来绘制文本。
FreeType 从 2.5 版开始支持表情符号。尝试执行php -i命令以查看您拥有的 FreeType 版本。这是我的:
FreeType 支持 => 已启用 FreeType 链接 => 与 freetype FreeType 版本 => 2.5.2
但是,在尝试使用我在这里找到的一些示例字体后,PHP 不断发出警告:
Warning: imagefttext(): Could not set character size
Run Code Online (Sandbox Code Playgroud)
恐怕GD 库不支持FT_LOAD_COLOR标志。此标志需要具有彩色表情符号。请参阅 FreeType 更改日志:
2013-05-23 Behdad Esfahbod
添加对彩色嵌入位图的支持(例如彩色表情符号)。
新的加载标志 FT_LOAD_COLOR 使 FreeType 加载颜色
嵌入位图,遵循本规范草案
https://color-emoji.googlecode.com/git/specification/v1.html
回答您的问题:您不能使用imagefttext. 抱歉 。
您也不能在 GD 中绘制黑白表情符号。这是因为 GD 仅支持 1-3 个多字节 UTF-8 字符。Emojis 字符范围属于 4 字节 UTF-8 字符。
来源:https : //github.com/libgd/libgd/blob/master/src/gdft.c#L341
具有多字节 UTF-8 表示的表情符号表:http ://apps.timwhitlock.info/emoji/tables/unicode
| 归档时间: |
|
| 查看次数: |
3762 次 |
| 最近记录: |