【问题标题】:imagettftext() always gray even with black definedimagettftext() 总是灰色的,即使定义了黑色
【发布时间】:2014-01-21 17:56:06
【问题描述】:

我的一个客户正在尝试使用 imagettftext() 在背景图像上放置文本。该代码以前可以正常工作,但突然从显示黑色文本变为显示灰色文本。代码已正确设置为黑色,将其更改为任何其他颜色也没有效果。

$im     = imagecreatefrompng("/path/to/background.png");
$text = imagecolorallocate($im, 0, 0, 0);
imagettftext($im, 10, 0,96, 201,$text, "vera", $thiscardnumber);
imagepng($im, "/path/to/new/".$imagefilename.".png");
imagedestroy($im);

任何帮助将不胜感激,因为代码或服务器上没有任何更改,我知道会突然阻止它生成正确的黑色文本。

你可以在这里看到生成的文本:

黑色文字是背景图片的一部分,灰色文字是由上面的代码生成的。

【问题讨论】:

  • 我能够从您的代码中重新创建相同的“黑色”文本,但发现您得到的是灰色文本,这很奇怪。看一下手册,可能会有帮助。我使用示例#1 php.net/imagettftext --- 另外,尝试使用不同的字体;我用了monofont.ttf --- 你的字体可能有一个不透明度设置,谁知道......发生了奇怪的事情。
  • 我尝试使用不同的字体,但我只是得到了不同字体的浅灰色文本 =) 我搜索了 PHP 中 GD 函数的文档中列出的任何具有透明度设置的函数,但找不到。

标签: php imagettftext


【解决方案1】:

编辑:来自下面的 cmets

啊,好的。如果你只是单独重新创建几行代码,你还会得到灰色文本吗?因为我的代码是黑色的。如果您尝试不同的字体或不同的基本图像只是为了消除它们作为罪魁祸首呢?您是否验证过 $text 的值是什么?


原始答案:

这里有些不对劲。您的“x”和“y”坐标大于背景图像,因此您生成的文本不在图像画布上。

是否有可能您的背景图像中已经包含灰色文本,而您正在生成的文本发生在图像之外?

【讨论】:

  • 我也是这么想的。 10, 0,96, 201 中的 OP 的 201 设置可能在这一切中发挥了作用。我把它改成了20,结果很好。也许这是某人的错字。
  • 不,很遗憾,这不是问题所在。如果是这样,那将是一个简单的解决方法 =) 我使用的图像比屏幕截图大得多,我只是使用了一小段来说明灰色生成文本旁边的黑色背景文本。文本正在生成并以除颜色以外的所有方式正确显示。数据是通过表单提交的,所以我可以看到文本在传递不同的值时更新。它就是那种近乎难以辨认的灰色。
  • 啊,好的。如果你只是单独重新创建几行代码,你还会得到灰色文本吗?因为我的代码是黑色的。如果您尝试不同的字体或不同的基本图像只是为了消除它们作为罪魁祸首呢?你验证过 $text 的值是什么吗?
  • 字体我已经换掉了,但基本图像可能是问题!创建一个纯色文件并将其切换到该文件使我的文本再次显示为黑色。该图像没有任何透明度,因此我不知道为什么它也会导致此问题,但至少这是一个好的开始!谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-12-13
  • 1970-01-01
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
相关资源
最近更新 更多