|
|
|
| Существуют изображения товара.
На одной странице - маленькие. На другой - крупнее.
Приходится хранить две копии изображения.
Вот подумалось, можно ли обойтись одним изображением, а второе, поменьше, создавать динамически в момент его запроса и подставлять его?
Но при этом не записывать новые данные на диск сервера. | |
|
|
|
|
|
|
|
для: Slon747
(09.06.2006 в 16:05)
| | Если отвечать коротко - идея плохая.
Обычно пространство на диске - менее дефицитный ресурс, нежели процессорное время и память сервера. Кроме того, при этом Вы фактически запретите писать их на диск клиента, т.е. кешировать. | |
|
|
|
|
|
|
|
для: Slon747
(09.06.2006 в 16:05)
| | Я сделал такую вещь, но мне она пока не по душе, т.к.
1 Не кешируются практически миниатюры
2 Давольно большая нагрузка на процессор
Но если тебя это не смущает, то я могу тебе сбросить кодик. Пиши на мыло maxx@postcard.in.ua | |
|
|
|
|
|
|
|
для: Slon747
(09.06.2006 в 16:05)
| | >Вот подумалось, можно ли обойтись одним изображением, а
>второе, поменьше, создавать динамически в момент его запроса
>и подставлять его?
>Но при этом не записывать новые данные на диск сервера.
Я так делал. Но отказался. Причины уже назывались - нагрузка на проц не кэширутся и не кэширутся (что еще хуже).
Сделал промежуточный вариант.
Уменьшенную картинку (точнее тэг img) выводит специальная функция.
Она получает путь к файлу и размер до которого нужно ужать.
Если картина меньше/равна нужного размера, то выводим ее.
Если больше, то в зависимости от настроек делает следующее:
- выводит уменьшенную картинку прям в браузер (точнее пишет в src пусть к скрипту уменьшающему картинки);
- если уменьшеная картинка есть - выводит ее, если нет создает миниатюру и выводит ее в браузер (точнее путь к скрипту-уменьшителю);
- если уменьшенная картинка есть - то выводит ее, если нет - создает миниатюру, записывает на диск и в src указывает путь уже к миниатюре.
Когда товар удаляется (или заменятся картинка товара) то удаляется и картинка и миниатюры. | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|