gpt4 book ai didi

php - 使用 GD 库和文本时左侧出现烦人的空格

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:10 24 4
gpt4 key购买 nike

我正在研究一个类,它可以创建多个文本输入并将它们放置在彼此之上,以便它们左右对齐 - 如下所示:

3 lines
(来源:vandret.dk)

问题是有时,文本的位置不正确。绘制 A 时,它有效。当绘制 M's(以及其他一些带有竖线的字母 - P's、I's 等)时,它会在左侧放置一个空格并在右侧裁剪句子。如果您查看下面的两条线,它们应该完美对齐 - 但事实并非如此。

3 lines
(来源:vandret.dk)

3 lines
(来源:vandret.dk)

如果直接右键查看图片,问题会更明显。

它是这样工作的:

  1. 创建一个空白 Canvas ,将文本“虚拟”放在上面以测量宽度和高度
  2. 获得尺寸后,创建一个与文本尺寸匹配的 Canvas 。我们现在有一个舞台,宽度为 800 像素
  3. 缩小句子或单词以适应 400 像素的宽度
  4. 增加另一个句子或单词的 y 偏移量
  5. 重复同样的事情,只要我们有句子/单词可以显示

我的起点是 this我构建了这段代码:

$fontsize = 120;
$size = imagettfbbox($fontsize, 0, "./fonts/".$fontname, $text);
$xsize = abs($size[0]) + abs($size[2]);
$ysize = abs($size[5]) + abs($size[1]);
//print_r($size);
$image = imagecreate($xsize, $ysize);

// Colors
$backgroundcolor = imagecolorallocate($image, 255, 255, 255);
$textcolor = imagecolorallocate($image, 155, 142, 138);

imagettftext($image, $fontsize, 0, 0, abs($size[5]), $textcolor, "./fonts/".$fontname, $text);
header("content-type: image/png");
imagepng($image);

然后,所有调整大小的东西都起作用了。但是为什么文本对齐错误?

最佳答案

解决了!是字体问题,不是GD问题。我在 High-Logic FontCreator 中打开 TrueType 字体,发现有几个字母的左边有一个间隔符。

我在名为“Automatic Metrics Wizard”的程序中使用了一个功能来去除左侧缩进的所有字符,这在几秒钟内就完成了——字体看起来仍然可以接受。像 j 这样的字母的字距调整看起来有点不对劲 - 但它会的。

关于php - 使用 GD 库和文本时左侧出现烦人的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27158780/

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