Сгенерированное изображение с использованием PHP и GD обрезается - PullRequest
2 голосов
/ 24 сентября 2008

Это происходит только на живом сервере. На нескольких серверах разработки образ создается как ожидалось.

ЭФИР: Красная Шапка

$ 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 ]

2 голосов
/ 24 сентября 2008

Может у вас не хватает памяти или что-то подобное? Вы перепроверили все журналы и т. Д.?

0 голосов
/ 12 мая 2009

Возможно, изображение не обрезается. Это может быть обрезанный текст.

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

TTF шрифт имеет накладные расходы и отступы. Попробуйте больший холст, посмотрите, получите ли вы тот же результат.

0 голосов
/ 12 мая 2009

Было ли у вас значение $ width, чтобы увидеть, правильно ли это?

0 голосов
/ 02 октября 2008

Зависит ли это от изображения?

Недавно я обнаружил странную ошибку / функцию в PHP & GD.

При попытке изменить размер и редактировать JPEG-файлы, которые имели полностью белый фон (около 3 МБ), произойдет сбой. Он ДОЛЖЕН работать с другими изображениями более крупного размера (около 4 МБ) и более сложным фоном.

Я понял, что когда GD открывал изображения для редактирования, фоновые изображения белого цвета росли в большем соотношении, чем более сложные изображения. Это соотношение для некоторых изображений приводило к сбою PHP / GD и сокращению изображений на полпути.

William

0 голосов
/ 24 сентября 2008

Это 100% согласованно и всегда в одном и том же месте? Если нет, это может быть проблема с ресурсом - время выполнения скрипта или ограничение памяти. Попробуйте настроить параметры php.ini, перезагрузить веб-сервер, протестировать.

...