Слияние прозрачных PNG приводит к несовместимым черным точкам - PullRequest
1 голос
/ 08 марта 2011

Я объединяю несколько прозрачных PNG в PHP с 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

Работает отлично.Мой результат выглядит примерно так:

http://upload.nucleardog.com/rc97

Когда я запускаю тот же скрипт на другом сервере, 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

Я получаю что-тоэто выглядит примерно так:

http://upload.nucleardog.com/19c3

Есть ли у кого-нибудь идеи, почему прозрачность не копирует таким непоследовательным образом?Различные копии с одним и тем же номером (идентичное исходное изображение - между ними не перезагружается), скопированные в разные места в результирующем изображении, имеют разный рисунок в черных пикселях.

Доступна копия используемого мной сценария здесь для тех, кто хотел бы покопаться.Загружает числа вокруг строки 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 box.И php, и gd были установлены из apt (php5 и php5-gd).

...