|
|
|
| Добрый день всем.
Кто подскажет какой скрипт используют на сайте Озон для увеличевания и уменьшения картинок.
Я думал что это просто javascript, но меня направили сюда.
Зарание Благодарен. | |
|
|
|
|
|
|
|
для: cccp
(14.05.2007 в 17:15)
| |
<?php
<?
// Функция изменения размера изображения
function resizeimg($filename, $w, $h)
{
// определим коэффициент сжатия изображения, которое будем генерить
$ratio = $w/$h;
// получим размеры исходного изображения
$size_img = getimagesize($filename);
// Если размеры меньше, то масштабирования не нужно
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
// Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
// пропорции исходного изображения
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
// создадим пустое изображение по заданным размерам
$dest_img = imagecreatetruecolor($w, $h);
$white = imagecolorallocate($dest_img, 255, 255, 255);
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename);
else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);
else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename);
// масштабируем изображение функцией imagecopyresampled()
// $dest_img - уменьшенная копия
// $src_img - исходной изображение
// $w - ширина уменьшенной копии
// $h - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $size_img[1] - высота исходного изображения
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
// сохраняем уменьшенную копию в файл
if ($size_img[2]==2){
$smallimage = tempnam("/tmp", "FOO").".jpg";
imagejpeg($dest_img, $smallimage);
}
else if ($size_img[2]==1){
$smallimage = tempnam("/tmp", "FOO").".gif";
imagegif($dest_img, $smallimage);
}
else if ($size_img[2]==3){
$smallimage = tempnam("/tmp", "FOO").".png";
imagepng($dest_img, $smallimage);
}
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return $smallimage;
}
?>
?>
|
| |
|
|
|
|
|
|
|
для: CrazyAngel
(14.05.2007 в 17:20)
| | Благодарю вас.
Простите, но я не очень разбираюсь в PHP.
А как использовать этот скрипт на несколько картинок на одной и той же страничке?
И ещё...
А как же мне сделать что бы при нажатие на картинку, она увеличиволась до оригинала и наоборот?
Тоесть именно как в Озоне.
Спасибо. | |
|
|
|
|
|
|
|
для: cccp
(14.05.2007 в 19:58)
| | это функция возвращает временный адрес уменьшенной картинки по параметрам, потом ее нужно скопировать куда нужно с помощью copy() ...
а затем просто выводим ее уже по новому адресу
второй вопрос, задайте в разделе javascript, именно с помощью него такого можно добиться | |
|
|
|
|
|
|
|
для: cccp
(14.05.2007 в 17:15)
| | Вообще хочу сказать что ozon.ru написан на asp, а для увеличения картинок насколько мне не изменяют глаза используется как раз Javascript | |
|
|
|
|
|
|
|
для: Faraon
(14.05.2007 в 17:49)
| | Ozon может быть написан на чем угодно, но это вовсе не значит, что процедуру уменьшения картинки можно выполнить лишь теми средствами, с помощью которых реализован ozon. Php для этого вполне пригоден, в отличие от клиентского JS.
Для увеличения же картинок применяется разве что фотограф с фотоаппаратом. | |
|
|
|
|
|
|
|
для: cccp
(14.05.2007 в 17:15)
| | ну если как на ozone...
то разобрав скрипт там можно увидеть что уних на на сервере лежат два варианта картинок (уменьшеный и увеличенный) вид, а переход осушествляеться с помошью функции swapimages
<a onclick="return swapImages(document.cover,'/multimedia/books_covers/small/1000503452.gif','/multimedia/books_covers/1000503452.jpg',60,200);" href="javascript://"><img name="cover" src="/multimedia/books_covers/small/1000503452.gif" alt="Zамуж за миллионера, или Брак высшего сорта" width="60" border="1" style="margin-right: 5px;"></a>
|
P.S. эту тему надо перенаправить на на JavaScript, HTML | |
|
|
|
|
|
|
|
для: mirage
(15.05.2007 в 10:48)
| | Спасибо. | |
|
|
|