Изображение [] не может быть показано, так как содержит ошибки.

Если с изображением всё в порядке, но при выводе его через скрипт браузер выдаёт ошибку: Изображение [] не может быть показано, так как содержит ошибки.

А Firebug: Image corrupt or truncated: []

Ошибка в том, что вы кроме содержимого файла посылаете лишние символы. "Мешать" могут как непосредственный вывод (echo, print), так и невидимые для глаза символы. Например, перед открывающим тегом php могут быть лишние пробелы или переносы строк. И после закрывающего тега php также могут быть лишние символы (собственно поэтому лучше не ставить в конце php-файла закрывающий тег php)