【问题标题】:kerning problem in GD and php 5.3GD 和 php 5.3 中的字距问题
【发布时间】:2011-08-18 02:06:16
【问题描述】:

知道这个问题之前已经在 PHP update kerning problem with imagettftext() and imagefttext() functions 但没有解决方案;

PHP5.3 在打印文本时似乎有字距问题:

查看以下示例中的“x”(字体:Ubuntu-M.ttf):

PHP5.2,ubuntu(好)

PHP5.3.2, ubuntu(更糟糕的是,x 是肥大的)

PHP5.3.2,MAMP OSX(可怕)

有什么解决办法吗?

安装了 5.3.6 的任何人都可以试试这个吗?

问候, //t

【问题讨论】:

  • 这可能不是由于 PHP 版本,而是捆绑的 GD 和 freetype 库的版本。做一个phpinfo(),查找版本号并将它们发布在这里
  • @Pekka:这真的取决于。 PHP 通常附带它自己定制的 GD 库,但并非总是如此。例如,Debian 不使用捆绑版本,而是使用全局 libgd。
  • @Sander 这不应该是关于 GD,而是关于 Freetype(但可能你所说的也适用于那里 - 它有时会被捆绑,有时不会)。不管怎样,phpinfo() 应该总是有正确的数字,如果我没记错的话,不管是否捆绑
  • 是的,是的。 phpinfo() 最清楚!
  • 是的,freetype 版本就是原因。

标签: php gd kerning


【解决方案1】:

下载字体(Ubuntu 字体系列的 0.71.2 版)后,我尝试用我的家用机器复制中间图像。 Arch Linux,x86_64,PHP 5.3.6,GD 2.0.34(捆绑),Suhosin 补丁,FreeType 2.4.4。我最好同时调整 e 和 x。

图像生成:

<?php
$img = imagecreatetruecolor(158, 72);
imagesavealpha($img, true);

$bg = imagecolorallocatealpha($img, 0, 0, 0, 127);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $bg);

$text = "testar text"; // - was attempt at no aa, like example
imagettftext($img, 24, 0, 0, 36, -($black), 'Ubuntu-M', $text);
$text = "med text";
imagefttext($img, 24, 0, 12, 72, $black, 'Ubuntu-M', $text);

imagepng($img, 'test.png');
imagedestroy($img);
?>

输出:

【讨论】:

    猜你喜欢
    • 2011-02-08
    • 2022-07-17
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2011-02-23
    • 1970-01-01
    相关资源
    最近更新 更多