Forum Webscript.Ru

Программирование => PHP => Тема начата: Enemy от 18 Марта 2004, 18:12:56

Название: ресайз "на лету"
Отправлено: Enemy от 18 Марта 2004, 18:12:56
Сейчас пишу панель управления медиа содержимым на сайте.. Каждый рисунок может иметь свой аватар (ескиз, свой уменшеный пропорционально вариант)... Resize делаю на пхп. Подаю скрипту один файл рисунка - он его загружает в одну директорию (content) а второй уменшеный в thumbnail.

А теперь сама суть моего вопроса:
Когда я делаю Edit - нужно показывать и большой рисунок и его thumbnail. Здесь возникает вопрос ефективности - thumbnail загрузится быстро (напр. 7 КБ) а полный рис - намного дольше (напр. 60 кб).

Я думал сделать так - при выводе на edit полного рис. - его ресайзить на лету. Как это сделать?

З.Ы. И сильно ли это нагружает сервер?
Название: ресайз "на лету"
Отправлено: Mog. от 18 Марта 2004, 18:22:50
Цитировать
Enemy:
при выводе на edit полного рис. - его ресайзить на лету

И показывать маленький не тот, что готовый, а тот, что отресайзеный?
И в чем эффективность? Один хрен, маленький ты будешь грузить, но и сервак напрягать для ресайза.
Название: ресайз "на лету"
Отправлено: Enemy от 18 Марта 2004, 18:50:44
Mog.
нет.
напр. есть рисунок =
большое фото - [JPG] 101,4 kb (800 X 600)
и его иконка - [JPG] 4,8 kb (140 X 105)

когда я перехожу в edit = показываю оба рисунка - но большое фото весит 100 кб. Его и ресайзить надо. А иконку - нет.
Название: ресайз "на лету"
Отправлено: FreeSpace от 18 Марта 2004, 22:56:13
Enemy
В тот момент, когда юзер жмет edit - тамбнейл уже сгенерирован и сохранён?
Название: ресайз "на лету"
Отправлено: Меняздесьдавнонет от 19 Марта 2004, 10:37:40
Цитировать
Enemy:
Его и ресайзить надо

я все никак не въеду - когда ресайзить, и зачем?
до каких размеров?
как тебе ресайз поможет с тем, что
Цитировать
thumbnail загрузится быстро (напр. 7 КБ) а полный рис - намного дольше (напр. 60 кб).
Название: ресайз "на лету"
Отправлено: Mog. от 19 Марта 2004, 10:51:11
RomikChef, чел хочет получать вместо полного (60к) рисунка отресайзеную, ну напрмер вполовину, копию в режиме Edit. Грубо говоря 30к.
Название: ресайз "на лету"
Отправлено: Mog. от 19 Марта 2004, 12:24:03
Цитировать
Enemy:
Как это сделать?

В качестве примера

$file="old_image.jpg";
$file_new="new_image.jpg";
$res_k=3;//коэффициент деления ширины/высоты
$old_file_size=filesize($file);
$is=GetImageSize("$file");
$old_w=$is[0];
$old_h=$is[1];
$new_w=$old_w/$res_k;
$new_h=$old_h/$res_k;
$img_old=imagecreatefromjpeg($file);
$img_new=imagecreate($new_w,$new_h);
imagecopyresized($img_new,$img_old,0,0,0,0,$new_w,$new_h,$old_w,$old_h);
imagejpeg($img_new, $file_new);
$is_new=GetImageSize("$file_new");
$new_file_size=filesize($file_new);
$raznitca=$old_file_size/$new_file_size;
echo "
был ширина -$old_w, высота - $old_h, размер - $old_file_size kb
";
echo "
стал ширина -$is_new[0], высота - $is_new[1], размер - $new_file_size kb";
echo "
разница примерно в $raznitca раз";
?>
Название: ресайз "на лету"
Отправлено: Enemy от 20 Марта 2004, 14:52:18
Mog.
во первых - спасибо.
Но есть маленькое но - этот скрипт как и мой создает файл физически на диску, как в принципе я и сам делаю thumbnails. А я хочу узнать как его создать просто виртуально.?
Когда то читал про сохранение рисунка в базе данных, и от туда его выводили.. Думаю можна full image загнать в переменную как строку, отресайзить, а потом просто вывести с помощью хеадер + ехо? К сожалению не знаю точно как, и спрашиваю...
Название: ресайз "на лету"
Отправлено: Меняздесьдавнонет от 20 Марта 2004, 17:54:03
Яркий пример современного веб-программиста, действующего методом копи-пасте.
Абсолютно при этом не представляющего, что делает используемый код.
Не читавшего не то, что документацию - а хотя бы список параметров используемых функций.
Но при этом гордо заявляющего - "мой скрипт!".

вперед - [p]image[/p]