Intereting Posts
Синтаксис для инструкции if / else, если вставка была успешной в подготовленном заявлении PDO От PHP / Apache, exec () или system () от root: "sudo: не удалось открыть систему аудита: Permission denied" Как я могу заставить PHP создавать обратную трассировку при ошибках? Как мне отобразить информацию об ошибке внутреннего сервера PHP? идентичный md5 для JS и PHP Поддерживает ли PHP соединение и дизъюнкцию изначально? Об использовании JavaScript в .php Кэширование запросов yii framework Как получить сообщение об ошибке каждого поля из объекта формы в symfony2? Замените изображения регулярными выражениями Как остановить ботов от наращивания счетчика загрузки файлов в PHP? css динамическая ширина дочерних элементов в родительском контейнере В Laravel 5.1 Нельзя публиковать значение флажка Как преобразовать дату ISO8601 в другой формат в PHP? Передать Javascript-переменные tp PHP-контроллер в Code Igniter

Мой PHP не может создать истинное цветное изображение

У меня есть сценарий, который использовался для создания истинного цветного изображения.

Но после смены сервера новая установка PHP не отображает изображение.

Вот пример: http://www.europasprak.com/engine/system/utils/printBarImage.php?color=%239999FF&width=3&height=10

Исходный код:

 <?PHP require_once("website.php"); $color = LibEnv::getEnvHttpGET("color"); $width = LibEnv::getEnvHttpGET("width"); $height = LibEnv::getEnvHttpGET("height"); $color = urldecode($color); if ($color && $width > 0 && $height> 0) { LibImage::printBarImage($color, $width, $height); } // Print a bar image static function printBarImage($color, $width, $height) { // Create a blank image $image = imagecreatetruecolor($width, $height); if (strlen($color) == 6) { $color = "#" . $color; } $r = intval(substr($color, 1, 2), 16); $g = intval(substr($color, 3, 2), 16); $b = intval(substr($color, 5, 2), 16); $color = imagecolorallocate($image, $r, $g, $b); // Fill up the image background imagefilledrectangle($image, 0, 0, $width, $height, $color); // Header indicating the image type header("Content-type:image/jpeg"); // Create the image in the best jpeg quality imagejpeg($image, NULL, 100); // Destroy the image imagedestroy($image); } ?> 

Моя версия PHP версии 5.6.20 имеет это, чтобы сказать:

 GD Support enabled GD Version bundled (2.1.0 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.5.2 GIF Read Support enabled GIF Create Support enabled JPEG Support enabled libJPEG Version 6b PNG Support enabled libPNG Version 1.2.50 WBMP Support enabled XBM Support enabled 

UPDATE: я прокомментировал вывод изображения и добавил отлаживаемое внешнее изображение:

 // imagejpeg($image, NULL, 100); $img=imagecreatefromjpeg("http://img.ruphp.com/php/faten-hamamas-85th-birthday-4804306106580992-hp2x.jpg"); imagejpeg($img, NULL, 100); 

И вопрос остается тем же.

Так что это, вероятно, не связано с моей настройкой GD, но лежит с типом контента.

Я удалил любые символы спецификации:

 tail --bytes=+4 lib/image.php tail --bytes=+4 system/utils/printBarImage.php 

Я пробовал разные кодировки:

 iconv -f ISO-8859-1 -t utf-8 ... -o ... 

EDIT: я обновил свою библиотеку GD до:

 GD Support enabled GD headers Version 2.2.4 GD library Version 2.2.4 FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.7.1 GIF Read Support enabled GIF Create Support enabled JPEG Support enabled libJPEG Version unknown PNG Support enabled libPNG Version 1.6.28 WBMP Support enabled XPM Support enabled libXpm Version 30411 XBM Support enabled 

Использование error_log () Я вижу, что $image = imagecreatetruecolor($width, $height); вызов функции создает идентификатор ресурса # 678 и что $color = imagecolorallocate($image, $r, $g, $b); вызов функции возвращает цветовой код 6737049.

Однако этот вопрос остался прежним.

Я также попытался использовать другую функцию вместо imagejpeg($image, NULL, 100); и поэтому я попробовал сначала imagepng($image); а затем imagegif($image); но вопрос остался прежним.

Если я прокомментирую header("Content-type:image/jpeg"); то вывод выглядит следующим образом: JFIF`` с исходным кодом:

     JFIF``  <CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100   C  C         }!1AQa"q2   #B  R  $3br  %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                               w!1AQaq"2 B     #3R br  $4 % &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                          ? @    (   (  ?       JFIF``  <CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100   C  C         }!1AQa"q2   #B  R  $3br  %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                               w!1AQaq"2 B     #3R br  $4 % &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                          ? @    (   (  ?       JFIF``  <CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100   C  C         }!1AQa"q2   #B  R  $3br  %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                               w!1AQaq"2 B     #3R br  $4 % &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                          ? @    (   (  ?  

Моим браузером является Chrome.

Теперь, если я открываю изображение в Firefox, он показывает это: The image ... cannot be displayed because it contains errors. ,

EDIT: я добавил некоторые сообщения об ошибках, и журнал имел это, чтобы показать:

 PHP Parse error: imagepng(): gd-png error: cannot allocate libpng main struct 

Related of "Мой PHP не может создать истинное цветное изображение"