|
|
|
| При программировании вывода изображений возникла странность с выводом изображений 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, что уже намного ближе к оригинальному.
Вопрос - почему так происходит и правильно ли прерывать выполнение скрипта во время вывода изображений? | |
|
|
|
|
|
|
|
для: alexxspb
(07.08.2009 в 13:20)
| | вы по сути новое изображение создаете
если вам просто скриптом выводить надо можно делать примерно так
$filename = file_get_contents('/images/'.$img_type.'_'.$size.'.gif');
header('Content-Disposition: inline; filename="'.$img_type.'_'.$size.'.gif"');
header("Content-type: image/gif");
header("Content-Length: ".strlen($filename));
echo $filename;
|
это один и примеров, а по идее лучше выводить через
http://ru2.php.net/manual/en/function.fpassthru.php | |
|
|
|
|
|
|
|
для: Visavi
(07.08.2009 в 13:32)
| | Спасибо за информацию, действительно, буду обычные изображения выводить через fpassthru() (благо, размер изображения становиться в таком случае реальным), остальные у меня генерируют изображения с данными. | |
|
|
|
|
|
|
|
для: alexxspb
(07.08.2009 в 13:20)
| | а посмотреть в файл результата?
правильно - не выводить в поток изображения ничего, кроме изображения. | |
|
|
|