使用PHP和GD生成的图像已被切断
时间:2020-03-06 14:40:52 来源:igfitidea点击:
这仅在实时服务器上发生。在乘法开发服务器上,将按预期创建映像。
居住:
红色的帽子
$ php --version PHP 5.2.6 (cli) (built: May 16 2008 21:56:34) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
GD支持=>启用
GD版本=>捆绑(兼容2.0.34)
DEV:
的Ubuntu 8
$ php --version PHP 5.2.4-2ubuntu5.3 with Suhosin-Patch 0.9.6.2 (cli) (built: Jul 23 2008 06:44:49) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
GD支持=>启用
GD版本=> 2.0或者更高
<?php $image = imagecreatetruecolor($width, $height); // Colors in RGB $white = imagecolorallocate($image, 255, 255, 255); $black = imagecolorallocate($image, 0, 0, 0); imagefilledrectangle($image, 0, 0, $width, $height, $white); imagettftext($image, $fontSize, 0, 0, 50, $black, $font, $text); imagegif($image, $file_path); ?>
在理想情况下,我希望实时服务器和开发服务器运行相同的发行版,但是实时服务器必须是Red Hat。
我的问题是,是否有人知道使用捆绑版的GD会导致图像的最右边部分被切断的具体差异?
编辑:我没有用完内存。日志文件中没有生成任何错误。就PHP而言,图像是正确生成的。这就是为什么我认为捆绑版本是GD特有的问题。
解决方案
也许内存不足或者其他类似的东西?我们是否仔细检查了所有日志文件等?
它是100%一致且始终在同一位置吗?如果没有,执行脚本或者内存限制可能是资源问题。尝试调整php.ini设置,重新启动Web服务器,进行测试。
是否取决于图像?
最近,我在PHP和GD中发现了一个奇怪的错误/功能。
尝试调整和编辑全白色背景(约3MB)的JPEG大小时,它将失败。它可以与其他较大的图像(约4MB)和更复杂的背景一起使用。
我得出的结论是,当GD打开图像进行编辑时,白色背景图像的增长比复杂图像的增长更大。对于某些图像,该比率导致PHP / GD失败,并且图像被剪切一半。
威廉
我们是否有$ width输出的值来查看它是否正确?
可能不是图像被剪切掉了。可能是文本被截断了。
imagettftext($image, $fontSize, 0, 0, 50, $black, $font, $text);
TTF字体有开销和填充。尝试使用更大的画布,看看是否获得相同的结果。