Но если я сохраню это изображение по 2-му параметру, это приведет к
действительное изображение GIF! И imagegif () возвращает true. И что теперь?
Проверьте вывод вашего скрипта - он отправляет что-то еще в браузер. Обычно это могут быть сообщения об ошибках / предупреждениях / уведомлениях, вывод текста из этого скрипта или из другого включенного в него скрипта, пробелы / новые строки или что-то еще (например, запись спецификации в случае кодирования UTF в файле скрипта) перед тегом <?php
,
Решение простое - прокомментируйте header('Content-Type: image/gif');
и вызовите скрипт напрямую (не на странице, содержащей изображения, сгенерированные скриптом). Проверьте что-либо перед «мусором» двоичного содержимого самого файла изображения.
Возможно, вам понадобится добавить error_reporting(E_ALL); ini_set('display_errors', 1);
вверху скрипта, если отчеты об ошибках / отображение также отключены.