RomCom
|
|
« : 30-05-2005 02:38 » |
|
В теме https://forum.shelek.ru/index.php/topic,6133.0.html был затронут вопрос вывода уменьшеных копий изображение. Здесь я привожу скрипт написаный для вывода файлов jpeg и gif (можно добавить PNG, BMP). Все делается через библиотеку GD2. <?php header ("Content-type: image/jpg"); function LoadImg($src) { $sw=imagesx($src); //ширина оригинала $sh=imagesy($src); //высота оригинала $iw=500; $ih=200; //максимальные ширина и высота пиктограммки //вычисляем, что больше ширина или высота, и размеры пиктограммки $dw=$iw/$sw; $dh=$ih/$sh; if(($sh*$dw) > $ih) { $nh=$ih; $nw=$dh*$sw; } else { $nh=$dw*$sh; $nw=$iw; } $dist = imagecreatetruecolor($nw,$nh); // создать пустое изображение imagecopyresized($dist,$src,0,0,0,0,$nw,$nh,$sw,$sh); //копируем оригинал в маленькую фотку return $dist; } $imgname="refresh.gif"; //имя файла $t=getimagesize($imgname); switch ($t[2]) //определяем тип { case 1: // это gif $src = @imagecreatefromgif ($imgname); /* попытка открыть */ if(!$src) die ("Not open img - $imgname"); $dist = LoadImg($src); imagegif($dist); //выводим в браузер break; case 2: // это jpg $src = @imagecreatefromjpeg ($imgname); /* попытка открыть */ if(!$src) die ("Not open img - $imgname"); $dist = LoadImg($src); imagejpeg($dist,null,60); //выводим в браузер break; } imagedestroy($src); imagedestroy($dist); ?>
Вопрос в следующем: Будет ли такой скриптик сильно пригружать сервер, если размер оригиналов фоток примерно 800х600? Пршу высказать свои мнения.
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #1 : 30-05-2005 15:07 » |
|
Вопрос в следующем: Будет ли такой скриптик сильно пригружать сервер, если размер оригиналов фоток примерно 800х600? Пршу высказать свои мнения.
Не должен. У меня для моего CMS написан клас для ресайза картинок. Ещё никто поа не жаловаля При загрузке картинки 1024x768 и конверте в 300x250 всё быстро работает.
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
RomCom
|
|
« Ответ #2 : 31-05-2005 00:33 » |
|
Обнаружил маленькую заморочку. Почемуто иногда, после какого нибудь редактирования скрипта, браузер перестает выводить фото в основном окне, а показывает окно загрузки файла. Никак не могу уловить в чем дело. Кто с таким сталкивался помогите, наставте на путь истенный.
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
schnibbl
Гость
|
|
« Ответ #3 : 31-05-2005 04:28 » |
|
а в php есть генератор случайных чисел ? и если есть может ли он выдавать случайные числа в заданном диапазоне ?
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #4 : 31-05-2005 13:13 » |
|
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #5 : 31-05-2005 19:01 » |
|
а в php есть генератор случайных чисел ? и если есть может ли он выдавать случайные числа в заданном диапазоне ?
А также я приводил простейшие примеры в одной из частей "Полезных скриптов"
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
Dracul
|
|
« Ответ #6 : 01-06-2005 03:17 » |
|
А не проще ли при загрузки большой картинки, создавать маленькую копию, для предпросмотра...
|
|
|
Записан
|
|
|
|
RomCom
|
|
« Ответ #7 : 01-06-2005 05:54 » |
|
Можно и так. Но легче просто закочать файл, а остальную работу оставить скрипту сайта. К тому же если делать копии то дисковое пространчтво засоряется, а когда фотографии это основной контент сайта то издержки будут внушительными. У меня на сайте примерно 9% от общего объема фото уходит под это дело, т.к. пиктограммки нужны достаточно большого размера. Да и с точки зрения дезайна сайта не удобно. Сегодня иконки одного размера, завтра решил зделать другого...
|
|
« Последнее редактирование: 01-06-2005 05:56 от RomCom »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
Dracul
|
|
« Ответ #8 : 02-06-2005 02:46 » |
|
Хе, а ведь верно, спасибо, приму к сведению..
|
|
|
Записан
|
|
|
|
Dracul
|
|
« Ответ #9 : 03-06-2005 03:49 » |
|
Маленький вопросик: не работает однако, не выдает ни каких ошибок, но вместо картинок выдает кучу (очень большую) различных символов, самое интересное то, что если приглядеться, то где-то в самом начале этих символов, есть строки о GD, что-то v1 и о JEPG и циферии коакие-то? Пользуем мы денвер, может кто подскажет как это лечится (У меня подозрение, что библиотека GD староватая, из-за этого могут быть глюки?) И еще надыбал инфу, что перед посылом картинки в браузер, надо посылать заголовок, типа вот такого: "Content-type: image/JPEG", послал (использовал функцию Header) но картинки, как небыло, так и нету, а еще в добавок, выводится ощибка на строку с посылкой заголовка!
|
|
|
Записан
|
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #10 : 04-06-2005 19:16 » |
|
Во первых : Проверь правильно ли формируеш Content-type. Погугли на эту тему и очень быстро найдёш список контент тайпов и как правильно их писать
Во вторых : При использовании функции header(); НЕ ДОЛЖНО быть НИКАКОГО вывода каких бы то ни было данных до вызова самой фунции
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
Dracul
|
|
« Ответ #11 : 05-06-2005 02:56 » |
|
Во вторых : При использовании функции header(); НЕ ДОЛЖНО быть НИКАКОГО вывода каких бы то ни было данных до вызова самой фунции
Заголовок верный, но посылается он уже после того, как в браузер переданно море инфы. Пробовал посылать сей заголовок в самом начале программы: все равно не помогает, вместо картинки выводится ее внутренности
|
|
|
Записан
|
|
|
|
|