|
|
|
| Читал сейчас сидел форум...много про превьюшки написанно.
Я так понимаю, что превьюшку создаёт PHP при помощи GDlib.
Ему есть разница. откуда брать файл...из базы данных или из простой папки?!
Суть такая, что в базу грузить картинки - муторно, проще папку по ftp на сервак хостера заслать. И не нужно сохранять маленькие картинки на сервере они ведь место поедают.
Можно ли осуществить такое, чтоб скрипт брал jpg файл из папки images, затем сочинял из большой картинки маленькую, выдавал в браузер, но не сохранял на сервере?! | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 16:02)
| | Вот, как я это делаю
Надо создать файл, например img_resize.php и в него положить скрипт
<?php
$dst_h = $_GET['h']; // высота, до которой надо уменьшить, ширина вычисляется пропорционально
$filename = $_GET['f']; // имя файла, который необходимо уменьшить
$src_img = imagecreatefromjpeg("images/".$filename); // идентификатор исходного изображения
$img_size = getimagesize("images/".$filename);
$src_w = $img_size[0]; $src_h = $img_size[1]; // здесь размеры исходного файла
$src_ratio = $src_w / $src_h; // отношение сторон исходного изображения
$dst_w = $dst_h * $src_ratio; // вычисляем ширину выходного изображения
$dst_img = imagecreatetruecolor($dst_w, $dst_h); // создаем выходное изображение
$white = imagecolorallocate($dst_img, 255, 255, 255); //
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h); // проводим масштабирование
header ("content-type: image/jpeg");
imagejpeg($dst_img);
imagedestroy($dst_img);
imagedestroy($src_img);
?>
|
Затем, там, где надо вставить превьюшку, вставьте тег
<img src="img_resize.php?h=100&f=img.jpg">
|
вместо 100 поставьте нужную высоту превьюшки, вместо img.jpg - имя файла, для которого надо сделать превьюшку. | |
|
|
|
|
|
|
|
для: WebTech
(01.06.2006 в 17:14)
| | А если мне нужно уменьшить 8 рисуночков для одной страницы?!
Это мне нужно для каждого скрипт писать...а вообще сервер справится?? | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 18:03)
| | Тогда надо на странице в нужных местах расставить 8 тегов вида
<img src="img_resize.php?h=100&f=img.jpg">
|
Естественно с разным значением f
Но если превьюшек будет много, то сервер начнет притормаживать конечно же :-(
GD, как я понимаю, ощутимо жрет ресурсы. На моем P-IV, 3 ГГц, 512Mb, Apache 1.3.27, PHP5.0.4 с GD2 на локалхосте при одновременном создании 20 превьюшек хорошо заметно замедление работы. А на виртуальном хостинге и того хуже будет. А если хостинг еще и бесплатный, на котором все урезают до безобразия, GD вообще может не работать при обработке больших изображение (и может быть и не очень больших). Будет вылетать из-за нехватки памяти :-( | |
|
|
|
|
|
|
|
для: WebTech
(01.06.2006 в 18:13)
| | Да неа...хостинг платный, вроде быстро всё выдаёт... что-то у меня скрипт только-вот не выполняется...Сплошные строки недовольства...ругается... | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 18:29)
| | Ошибки исчесзли, а привьюшки как не было, так и нет.. 8/ | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 18:29)
| | Конкретно - на что ругается? Какая версия GD? | |
|
|
|
|
|
|
|
для: WebTech
(01.06.2006 в 18:47)
| | GD - 2.0.28
В начале, ругалась PHP, что мол мне файл вместо текста подсовываете...
я тады header наверх добавил, мол типа content-type image/jpeg и всё такое...
Подозреваю, что не может файл с директории поднять, прав не хватает чтоли.. | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 18:55)
| | Права тут ни при чем.
img_resize.php и папка images должны находится на одном уровне в дереве каталогов.
Второй возможный вариант - как я раньше написал, не хватает ресурсов для скрипта :-( Вполне возможно, если вы обрабатываете большое изображение.
Посмотрите лог с ошибками PHP, если есть такая возможность.
А на локальном сервере не проверяли скрипт? | |
|
|
|
|
|
|
|
для: WebTech
(01.06.2006 в 19:04)
| | Картинка1024*768 и 112 килобайт весом.
Проверяю на локальном сервере.
Вроде бы что-то там думает долю секунды, а изображение не отдаёт....гадина :] | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 19:15)
| | Посмотрите, что в error.log пишут. | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 19:15)
| | Зря Вы с этой идеей связались.
Ничем хорошим она Вам не светит.
Место под превьюшки требуется обычно куда меньше, чем под оригиналы.
А нагрузка на процессор хоста - изрядная.
Это даже если забыть, отм, что у Вас появятся проблемы с кешированием.
И не только у Вас (хотя Вам траффик тоже дожен быть небезразличен) но и у тех, кто на Ваш сайт придет.
Куда ни плюнь - везде одни минусы.
Мораль: Превьюшку, однажды создав, следует записать в файл.
Пользователю следует давать ссылку на этот файл. | |
|
|
|
|
|
|
|
для: Trianon
(01.06.2006 в 19:30)
| | Но должно же заработать. Чисто академический интерес :-)
В остальном я с Вами согласен :-) Сам бросил этот способ после того как попробовал. | |
|
|
|
|
|
|
|
для: WebTech
(01.06.2006 в 19:36)
| | Так заработает, кто ж возражает.
Более того, можно будет использовать изрядную часть этого скрипта для формирования файлов. | |
|
|
|
|
|
|
|
для: Trianon
(01.06.2006 в 19:30)
| | Причину нашёл и устранил....оказалось, что всё дело было в расширении, записанном в верхнем регистре, (кто знал, что эта GаDина такая привиреда). Последнее ваше высказывание нашло отражение в том, что я тоже об этом думал. Особенно, когда посмотрел, сколько места она (превьюшка) занимает 7 килобайт.....Но на сайте моём их будетоё как много....я наверно подсчитаю предварительно сколько места будет занимать, а потом решу, (кстати у хостера работать не хотит.)
Спасибо за помощь... | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 19:39)
| | Вот. Посчитайте. :) Потом сравните с суммарным размером исходных изображений. И поймете, что размером preview можно пренебечь. Потом немного подумаете, и поймете - чтобы до этого вывода дойти, не нужно было подсчитывать суммарные размеры. | |
|
|
|
|
|
|
|
для: Trianon
(01.06.2006 в 19:44)
| | Тут дело даже не в выводах, а внепостижимости работы скрипта...: каким-то необычным образом, он заработал на сервере хостера...кстати я подсчитал и думаю, что придётся использовать привьюшки, только в том случае, если по обычному dialup-у сайт будет относительно быстро загружаться., к тому же у меня там будет только одна страничка, где они (превьюшки) будут.
Тема-то какая интересная....глядите сколько напостили...:) | |
|
|
|
|
|
|
|
для: Vasil
(01.06.2006 в 16:02)
| | Можно. Здесь даже пример есть
Например тут - http://softtime.ru/info/articlephp.php?id_article=38 | |
|
|
|
|
|
|
|
для: targa
(01.06.2006 в 17:17)
| | Обязательно испробую. Блин, только не успеваю...Конечно же спасиба. | |
|
|
|