Увеличьте доход от рекламы на 50-250% с помощью Ezoic. Сертифицированный издательский партнер Google.
Увеличьте доход от рекламы на 50-250% с помощью Ezoic. Сертифицированный издательский партнер Google.
 

PHP GD сгенерированное изображение Изображение не может быть отображено, поскольку оно содержит ошибки в Firefox

PHP GD сгенерированное изображение Изображение не может быть отображено, поскольку оно содержит ошибки в Firefox [Русский]

Увеличьте доход от рекламы на 50-250% с помощью Ezoic. Сертифицированный издательский партнер Google.
Увеличьте доход от рекламы на 50-250% с помощью Ezoic. Сертифицированный издательский партнер Google.
 

При создании изображения с помощью PHP, например, добавление водяного знака на сохраненное изображение сервера, с использованием кода ниже или аналогичного с JPEG вместо PNG, изображение может вообще не создаваться и вызывать ошибку, непосредственно видимую в Firefox, но не на Chrome.

Такой код, несмотря на работу на некоторых серверах, теперь может работать над некоторыми другими, иногда по неясным причинам. В моем случае он работал отлично нормально локально, но при ошибке ниже на интернет-сервере изображение не отображалось, поскольку оно содержит ошибки.

Проблема может быть вызвана несколькими причинами: вот некоторые из них:

Выход уже установлен ранее.

Настоящая ошибка в генерации изображений.

Используется неправильный тип изображения.

Библиотека изображений не установлена.

$stamp = imagecreatefrompng('watermark.png');
if(!$im = imagecreatefrompng('image.png')) die('Error generating image');
$marge_right = $marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

$copyimage = imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

header('Content-type: image/png');
if(!imagepng($im)) die('Error generating image');
if(!imagedestroy($im)) die('Error generating image');
if(!imagedestroy($stamp)) die('Error generating image');

Выход уже установлен ранее

Даже если это не преднамеренно, может быть, например, что другие предыдущие сценарии содержали пробелы в конце - чтобы избежать этой ошибки, убедитесь, что, как рекомендует PHP, не закрывать скрипты с помощью тега PHP end>

Затем, прежде чем использовать функцию заголовка, используйте следующий код, чтобы убедиться, что любой ранее установленный заголовок отбрасывается

foreach (getallheaders() as $name => $value) {
header_remove($name);
}

А также эта функция, чтобы убедиться, что выходной сигнал не был сформирован перед заголовком и изображением

ob_end_clean();

Это решило проблему в моем случае, и изображение было правильно отображено снова.

Настоящая ошибка в генерации изображений

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

Следующий код заставит PHP сообщать обо всех ошибках в журнале:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Затем вы можете узнать, что сообщалось о некоторых ошибках, даже если они не отображались в выходном html из-за конфигурации сервера.

Используется неправильный тип изображения

Убедитесь, что используемые вами типы изображений верны, например, используя этот код, чтобы различать png и jpeg.

Также убедитесь, что заголовок правильно соответствует используемому выходу, в зависимости от используемой функции генерации изображения

//to generate png image
header('Content-type: image/png');
if(!imagepng($im)) die('Error generating image');
//to generate jpeg image
header('Content-type: image/jpeg');
if(!imagejpeg($im)) die('Error generating image');

Библиотека изображений не установлена

Чтобы убедиться, что библиотеки изображений установлены. Для этого запустите функцию phpinfo (); в скрипте и проверить вывод для следующего значения, связанного с PHP GD, графической библиотекой, которая используется такими функциями, как imagepng ();

В случае отсутствия пакетов способ его решения зависит от вашей локальной конфигурации либо путем добавления пакета с помощью команд PEAR, либо с помощью встроенного в веб-узел решения для установки пакета.

Что делать, если imagejpeg или imagepng не работает

В NotePad ++ откройте файл PHP, который вызывает функцию imagepng, и сохраните его после перехода в меню «Кодирование»> «Преобразовать в UTF-8 без спецификации».

В DreamWeaver перейдите в Свойства страницы> Заголовок / Кодировка> снимите флажок Включить подпись Unicode (BOM).

Когда PHP imagejpeg или imagepng не работает, это, скорее всего, связано с тем, что файл PHP был закодирован с помощью спецификации, ведомости материалов, и, следовательно, дополнительная информация отправляется вместе с изображением перед данными изображения.

Функции PHP imagejpeg и PHP imagepng - это функции, используемые для отправки кода изображения непосредственно в ответе сервера.

PHP - imagepng не работает должным образом
PHP - функция imagepng
PHP - функция imagejpeg
Увеличьте доход от рекламы на 50-250% с помощью Ezoic. Сертифицированный издательский партнер Google.
Увеличьте доход от рекламы на 50-250% с помощью Ezoic. Сертифицированный издательский партнер Google.
 

Прочитайте больше

Фотогалерея

PHP GD сгенерированное изображение Изображение не может быть отображено, поскольку оно содержит ошибки в Firefox : Ошибка Изображение невозможно отобразить, поскольку в нем содержатся ошибки в Firefox.
PHP GD сгенерированное изображение Изображение не может быть отображено, поскольку оно содержит ошибки в Firefox : Динамически сгенерированное изображение с использованием PHP
PHP GD сгенерированное изображение Изображение не может быть отображено, поскольку оно содержит ошибки в Firefox : Сведения о пакете PHP GD с использованием функции phpinfo ()

Похожие статьи

Увеличьте доход от рекламы на 50-250% с помощью Ezoic. Сертифицированный издательский партнер Google.
Увеличьте доход от рекламы на 50-250% с помощью Ezoic. Сертифицированный издательский партнер Google.
 

Комментарии (6)

Irvin Vasquez, 2018-08-19
Simple, clear and well explained, many thanks
Joyce Lawrence, 2018-08-19
ありがとう、非常に有益な
Catherine Roberts, 2018-08-19
Dokładnie tego, czego szukałem, idealnie
Headlinext, 2018-08-19
जानकारी का महान टुकड़ा, साझा करने के लिए धन्यवाद
Marshel, 2018-08-19
विश्वास नहीं कर सकता कि मुझे अंत में समाधान मिला, यह लंबे समय तक एक दुःस्वप्न था, अब हल हो गया
porcateraC, 2018-08-19
بالضبط ما كنت أبحث عنه ، مثالي

Оставить комментарий

Ваши данные - зашифрованы. Личность - Аноним. Скорость интернета - улучшенная.
Ваши данные - зашифрованы. Личность - Аноним. Скорость интернета - улучшенная.