Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Динамическое создание миниатюр
 
 автор: Slon747   (09.06.2006 в 16:05)   письмо автору
 
 

Существуют изображения товара.
На одной странице - маленькие. На другой - крупнее.
Приходится хранить две копии изображения.
Вот подумалось, можно ли обойтись одним изображением, а второе, поменьше, создавать динамически в момент его запроса и подставлять его?
Но при этом не записывать новые данные на диск сервера.

   
 
 автор: Trianon   (09.06.2006 в 16:21)   письмо автору
 
   для: Slon747   (09.06.2006 в 16:05)
 

Если отвечать коротко - идея плохая.

Обычно пространство на диске - менее дефицитный ресурс, нежели процессорное время и память сервера. Кроме того, при этом Вы фактически запретите писать их на диск клиента, т.е. кешировать.

   
 
 автор: maxnag   (10.06.2006 в 03:53)   письмо автору
 
   для: Slon747   (09.06.2006 в 16:05)
 

Я сделал такую вещь, но мне она пока не по душе, т.к.
1 Не кешируются практически миниатюры
2 Давольно большая нагрузка на процессор

Но если тебя это не смущает, то я могу тебе сбросить кодик. Пиши на мыло maxx@postcard.in.ua

   
 
 автор: targa   (10.06.2006 в 04:30)   письмо автору
 
   для: Slon747   (09.06.2006 в 16:05)
 

>Вот подумалось, можно ли обойтись одним изображением, а
>второе, поменьше, создавать динамически в момент его запроса
>и подставлять его?
>Но при этом не записывать новые данные на диск сервера.

Я так делал. Но отказался. Причины уже назывались - нагрузка на проц не кэширутся и не кэширутся (что еще хуже).

Сделал промежуточный вариант.
Уменьшенную картинку (точнее тэг img) выводит специальная функция.
Она получает путь к файлу и размер до которого нужно ужать.
Если картина меньше/равна нужного размера, то выводим ее.
Если больше, то в зависимости от настроек делает следующее:
- выводит уменьшенную картинку прям в браузер (точнее пишет в src пусть к скрипту уменьшающему картинки);
- если уменьшеная картинка есть - выводит ее, если нет создает миниатюру и выводит ее в браузер (точнее путь к скрипту-уменьшителю);
- если уменьшенная картинка есть - то выводит ее, если нет - создает миниатюру, записывает на диск и в src указывает путь уже к миниатюре.

Когда товар удаляется (или заменятся картинка товара) то удаляется и картинка и миниатюры.

   
 
 автор: ODM   (21.06.2006 в 17:07)   письмо автору
 
   для: Slon747   (09.06.2006 в 16:05)
 

Вроде так:

<html>
<title></title>
<body>
<?php

list($a1$a2$type$attr) = getimagesize("img/1.jpg");      //Uznajom atibuti jpg,gif,..

if ($a1>=$a2)    // Esli sirina bolse visoti togda
 
{               // proishodit umensenije kartinki
  
$k1=$a1/150;   // po visote
  
$b1=150;
  
$b2=$a2/$k1;
 }
  else           
// Esli visota bolse sirini togda
 
{               // proishodit umensenije kartinki
  
$k1=$a2/150;   // po visote
  
$b2=150;
  
$b1=$a1/$k1;
 }

?>

<a href="bigimg.htm"><img src="1.jpg" width="<?php print($b1);?>" height="<?php print($b2);?>" alt="" border="0"></a>
<img scr="1.jpg" width="100" height="100" >
</body>
</html>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования