Это происходит только на реальном сервере. На многострочных серверах разработки изображение создается, как ожидалось.
LIVE: Red Hat
$ 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 Version => в комплекте (совместим с 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); ?>
В идеальном мире я бы хотел, чтобы сервер live и сервер-разработчик запускали один и тот же дистрибутив, но живой сервер должен быть Red Hat.
Мой вопрос заключается в том, кто-нибудь знает конкретные различия, которые приведут к тому, что правая часть изображения будет отключена с помощью поставляемой в комплекте версии GD?
EDIT: У меня не хватает памяти. В файлах журналов ошибок не генерируется. Что касается php, изображение генерируется правильно. Вот почему я считаю, что это проблема GD, связанная с поставляемой в комплекте версией.
Может, у вас заканчивается память или что-то подобное? Вы дважды проверяли все лог-файлы и т. Д.?
Является ли он 100% последовательным и всегда в одном месте? В противном случае это может быть проблема с ресурсами – время для выполнения сценария или ограничения памяти. Попробуйте настроить параметры php.ini, перезагрузить веб-сервер, проверить.
Это зависит от изображения?
Недавно я обнаружил странную ошибку / функцию в PHP и GD.
При попытке изменить размер и отредактировать JPEG-файлы со всем белым фоном (c. 3MB), это не сработает. Он работал с другими изображениями, которые были больше (c. 4MB) и более сложными фонами.
Я выяснил, что, когда GD открывал изображения для редактирования, белые обратные изображения были увеличены по сравнению с более сложными изображениями. Это соотношение для некоторых изображений заставило PHP / GD потерпеть неудачу и разрезать изображения наполовину.
Уильям
У вас было значение $ width output, чтобы увидеть, правильно ли оно?
Возможно, изображение не будет отключено. Это может быть отрезанный текст.
imagettftext($image, $fontSize, 0, 0, 50, $black, $font, $text);
Шрифт TTF имеет накладные расходы и прокладки. Попробуйте сделать более крупный холст, если вы получите тот же результат.