Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вывод пиктограмм (уменьшеных копий) изображений  (Прочитано 13996 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« : 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
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #1 : 30-05-2005 15:07 » 

Вопрос в следующем:
 Будет ли такой скриптик сильно пригружать сервер, если размер оригиналов фоток примерно 800х600?
Пршу высказать свои мнения.
Не должен. У меня для моего CMS написан клас для ресайза картинок. Ещё никто поа не жаловаля Улыбаюсь При загрузке картинки 1024x768 и конверте в 300x250 всё быстро работает. 
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 31-05-2005 13:13 » 

http://www.php.net/manual/ru/function.rand.php
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #5 : 31-05-2005 19:01 » 

а в php есть генератор случайных чисел ?
и если есть может ли он выдавать случайные числа в заданном диапазоне ?
А также я приводил простейшие примеры в одной из частей "Полезных скриптов"
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Dracul
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 01-06-2005 03:17 » 

А не проще ли при загрузки большой картинки, создавать маленькую копию, для предпросмотра...
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 02-06-2005 02:46 » 

Хе, а ведь верно, спасибо, приму к сведению.. Улыбаюсь
Записан
Dracul
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 03-06-2005 03:49 » 

Маленький вопросик:
не работает однако, не выдает ни каких ошибок, но вместо картинок выдает кучу (очень большую) различных символов, самое интересное то, что если приглядеться, то где-то в самом начале этих символов, есть строки о GD, что-то v1 и о JEPG и циферии коакие-то?
Пользуем мы денвер, может кто подскажет как это лечится (У меня подозрение, что библиотека GD староватая, из-за этого могут быть глюки?)
И еще надыбал инфу, что перед посылом картинки в браузер, надо посылать заголовок, типа вот такого: "Content-type: image/JPEG", послал (использовал функцию Header) но картинки, как небыло, так и нету, а еще в добавок, выводится ощибка на строку с посылкой заголовка!
Записан
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #10 : 04-06-2005 19:16 » 

Во первых : Проверь правильно ли формируеш Content-type. Погугли на эту тему и очень быстро найдёш список контент тайпов и как правильно их писать

Во вторых : При использовании функции header(); НЕ ДОЛЖНО быть НИКАКОГО вывода каких бы то ни было данных до вызова самой фунции
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Dracul
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 05-06-2005 02:56 » 

Во вторых : При использовании функции header(); НЕ ДОЛЖНО быть НИКАКОГО вывода каких бы то ни было данных до вызова самой фунции
Заголовок верный, но посылается он уже после того, как в браузер переданно море инфы. Пробовал посылать сей заголовок в самом начале программы: все равно не помогает, вместо картинки выводится ее внутренности Жаль
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines