Вывод изображений, размеры файлов GIF

alxander

Новичок
Вывод изображений, размеры файлов GIF

При программировании вывода изображений возникла странность с выводом изображений GIF формата.
В Photoshop CS4 (ОС Windows 7) было обработано изображение и сохранено с количеством цветов равным 32. Размер: 1.17kb.
При выводе с помощью этого кода:
Код:
$im = imagecreatefromgif('/images/'.$img_type.'_'.$size.'.gif') OR die();
        header ("Content-type: image/gif");
        imagegif($im);
        imagedestroy($im);
размер изображения стал 4.3kb (в браузере).
Что меня удивило, но, решив, что PHP создает GIF с 256 цветами, принял как неизбежное.

Но, написав в конце предыдущего кода die('не пустая строка'); , был удивлен еще больше - размер изображения в браузере стал равен 1.22kb, что уже намного ближе к оригинальному.

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

SiMM

Новичок
> почему так происходит
[telepat mode]
[m]ini.core#ini.auto-prepend-file[/m]
[m]register_shutdown_function[/m]
[m]ini.core#ini.auto-append-file[/m]
[/telepat mode]
 

Фанат

oncle terrible
Команда форума
Для начала надо задаться вопросом, зачем вообще весь этот сложный код, чтобы вывести файл в браузер
 

alxander

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

Остальные изображения (без данных) выводятся так:

Код:
$name = '/images/'.$img_type.'_'.$size.'.gif';
$fp = fopen($name, 'rb') OR die();

header("Content-Type: image/gif");
header("Content-Length: " . filesize($name));
fpassthru($fp);
die();
 

Adelf

Administrator
Команда форума
Я наверно тебя удивлю, но изображения "без данных" можно выводить и без PHP :)
 

alxander

Новичок
Очень смешно.
Изображения запрашиваются с других сайтов в теге <img>, и в любом случае запрос должен обрабатываться на PHP - если данных нет - просто выводится изображение, иначе генерируется изображение с данными.
 
Сверху