Php 合并透明PNG会导致不一致的黑点

Php 合并透明PNG会导致不一致的黑点,php,png,gd,gd2,Php,Png,Gd,Gd2,我正在将PHP中的一些透明PNG与GD合并。我在一个透明的背景上画了一堆数字,把它们放在一起,形成一张最终的图像。使用以下GD配置在一台服务器上运行脚本: GD Support => enabled GD Version => bundled (2.0.34 compatible) FreeType Support => enabled FreeType Linkage => with freetype FreeType Version => 2.2.1 GIF R

我正在将PHP中的一些透明PNG与GD合并。我在一个透明的背景上画了一堆数字,把它们放在一起,形成一张最终的图像。使用以下GD配置在一台服务器上运行脚本:

GD Support => enabled
GD Version => bundled (2.0.34 compatible)
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.2.1
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => 6b
PNG Support => enabled
libPNG Version => 1.2.10
WBMP Support => enabled
XPM Support => enabled
XBM Support => enabled
它工作得很好。我的结果类似于:

当我在另一台服务器上运行相同的脚本时,gd的配置如下:

GD Support => enabled
GD Version => 2.0
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.4.2
T1Lib Support => enabled
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => 6b
PNG Support => enabled
libPNG Version => 1.2.44
WBMP Support => enabled
我最终得到的东西看起来更像:

有人知道为什么透明度没有以如此不一致的方式复制吗?复制到结果图像中不同位置的相同编号(相同源图像-中间未重新加载)的不同副本在黑色像素中具有不同的图案

我正在使用的脚本副本可供任何想深入研究的人使用。它加载第69行周围的数字。它将数字复制到位于
155-165
的中间图像上。该中间步骤复制到位于
197-231的结果图像上

有人知道我如何修复这个特定服务器上的脚本吗?不使用捆绑的GD是否有问题

谢谢你的建议

编辑:有问题的机器正在运行PHP 5.3.3:

adam:~$ php -v
PHP 5.3.3-1ubuntu9.3 with Suhosin-Patch (cli) (built: Jan 12 2011 16:07:38)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
adam:~/$
不带的一个正在运行相同的:

adam@server1 [~]$ php-cli -v
PHP 5.3.3 (cli) (built: Aug 18 2010 16:36:42)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
    with the ionCube PHP Loader v3.3.20, Copyright (c) 2002-2010, by ionCube Ltd.
    with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
adam@server1 [~]$

有问题的是一个Ubuntu盒子。php和gd都是从apt(php5和php5 gd)安装的。

因此日期有点模糊,但GD2.0似乎是在2002年某个时候发布的。PHP从2002年底发布的4.3.0开始就捆绑了GD的一个版本。您看到GD的非捆绑版本的唯一方式是,如果PHP是在该机器上针对它编译的。。。然后你要面对的是一台有着九年没有修补过的库的机器。
phpinfo
错误或机器被阻塞。或者两者兼而有之。horked机器上使用的PHP版本是什么?Debian
php5 gd
包依赖于外部gd库。Ubuntu one很可能遵循这种模式。因此,它显然不会直接使用2.0,而是更现代的版本。然而,这仍然不能解释这种行为。。。