使用PHP和GD生成的图像正在被切断

时间:2008-09-24 18:42:41

标签: php gd

这只发生在实时服务器上。在多个开发服务器上,正在按预期创建映像。

LIVE: 红帽

$ 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特定问题。

5 个答案:

答案 0 :(得分:2)

也许你的内存不足或类似的东西?你仔细检查了所有的日志文件等吗?

答案 1 :(得分:0)

它是100%一致并始终在同一个地方吗?如果不是,则可能是资源问题 - 执行脚本或内存限制的时间。尝试调整php.ini设置,重启Web服务器,测试。

答案 2 :(得分:0)

它取决于图像吗?

最近我发现PHP和PHP中的一个奇怪的错误/功能GD。

当尝试调整大小并编辑具有全白背景(约3MB)的JPEG时,它将失败。它可以与其他较大的图像(约4MB)和更复杂的背景一起使用。

我得出结论,当GD打开要编辑的图像时,白色背景图像比更复杂的图像增长的比例更大。某些图像的比例导致PHP / GD失败并中途剪切图像。

威廉

答案 3 :(得分:0)

您是否拥有$ width输出的值以查看它是否正确?

答案 4 :(得分:0)

可能不是图像被切断了。可能是文本被截断了。

imagettftext($image, $fontSize, 0, 0, 50, $black, $font, $text);

TTF字体有开销和填充。尝试更大的画布,看看你是否得到了相同的结果。