PHP GD Imagettftext透明

时间:2016-06-02 17:53:59

标签: php transparency gd imagettftext

我正在尝试使用<b>Fatal error</b>: Cannot use object of type stdClass as array in <source filename> on line <linenumber> 编写透明文本,但我不能(使用imagettftext工作,但无法选择自己的字体和大小)。最终图像应该是带有透明文本的灰色矩形,因此如果我将图像放在新背景上,则背景在文本中可见。

我的代码是:

imagestring

1 个答案:

答案 0 :(得分:1)

此处的解决方案应该简单;切换到非混合模式(通过Use Remote Collation)并添加完全透明色的文本。但是PHP中似乎存在一个错误(在7.0.7中测试,在编写本文时最新),这导致文本呈现为一系列矩形而不是字母。

对此的一个非常快速和简单的解决方法是否定imagealphablending($img, false);的颜色索引以禁用抗锯齿:

$transparent

但是,如果您希望文本消除锯齿,您可以:

  • 以所需尺寸的两倍(宽度×2,高度×2)
  • 创建图像
  • 使用
  • 上面的否定方法添加别名文本
  • 通过imagettftext($img, $fontSize, 0, $text_posX, $text_posY, -$transparent, $font, 'TEST'); 调整图像大小(宽度÷2,高度÷2)以伪造基本的消除锯齿效果。

所以,基本上,这个:

imagecopyresampled()