Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Уменьшение размера файла изображения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
byfahrenheit
Отправлено: 14 Сентября, 2012 - 13:34:49
Post Id



Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Здравствуйте.
Прошу прощение, если тема уже поднималась, т.к. поиск не дал результатов.

Пользователи размещают на страницах форума крупноразмерные картинки. Стоит обычный ресайзер, который уменьшает картинку по ширине. Но он не затрагивает качество изображения, т.е. если картинка весила 2мб, то так и будет весить. На странице порой десяток таких изображений и хоть они под спойлером, все равно загрузка страницы очень медленная. Решил дописать функцию, которая будет убивать качество "уменьшенной" картинки (не превью, а просто уменьшенное изображение под средствами CSS), а по клику, картинка будет увеличиваться как обычно, с полным качеством.
Собственно вот такой алгоритм. Единственное, что не понятно, это то, как убить качество изображения, не сохраняя его на сервере.

Если есть другие предложение - с радостью выслушаю. Делать превью - не предлагать, т.к. картинок из внешних источников очень много.

Заранее спасибо!
 
 Top
GEN_18
Отправлено: 14 Сентября, 2012 - 13:48:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




я не понял, а при загрузке изображения, оно не урезается??? и не сохраняется на сервер с разными разрешениями?


-----
Еще вечера сегодня было завтра.
 
 Top
byfahrenheit
Отправлено: 14 Сентября, 2012 - 14:10:18
Post Id



Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Нет. изображение не загружается на сервер.
 
 Top
GEN_18
Отправлено: 14 Сентября, 2012 - 14:14:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




когда я делал фото терминал, было что то похожее, картинка ресайзилась только программно
resize.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. header('Content-type: image/jpeg');
  3. $fileName=$_GET['file'];
  4. function imageresize($outfile,$infile,$neww,$newh,$quality) {
  5.     $im=imagecreatefromjpeg($infile);
  6.     $k1=$neww/imagesx($im);
  7.     $k2=$newh/imagesy($im);
  8.     $k=$k1>$k2?$k2:$k1;
  9.  
  10.     $w=intval(imagesx($im)*$k);
  11.     $h=intval(imagesy($im)*$k);
  12.  
  13.     $im1=imagecreatetruecolor($w,$h);
  14.     imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im));
  15.  
  16.     imagejpeg($im1,$outfile,$quality);
  17.     imagedestroy($im);
  18.     imagedestroy($im1);
  19.     }
  20. list($width, $height) = getimagesize("$fileName");     
  21. if ($width>$height){
  22. imageresize("","$fileName",640,240,100);}
  23. else {imageresize("","$fileName",240,640,100);}
  24. ?>

отображение картинки
PHP:
скопировать код в буфер обмена
  1. <img src='resize.php?file=".$path."/".$v."'/>

(Отредактировано автором: 14 Сентября, 2012 - 14:14:54)



-----
Еще вечера сегодня было завтра.
 
 Top
byfahrenheit
Отправлено: 14 Сентября, 2012 - 14:44:14
Post Id



Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Уж очень долго скрипт обрабатывает изображение
 
 Top
GEN_18
Отправлено: 14 Сентября, 2012 - 17:13:20
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




ну да...в этом его минус, но работает вроде так, как тебе нужно, я думаю...


-----
Еще вечера сегодня было завтра.
 
 Top
byfahrenheit
Отправлено: 15 Сентября, 2012 - 15:02:04
Post Id



Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Придумал кое что по проще, с использованием ajax. Но возникла очередная проблема. Что-бы не создавать новую тему, спрошу здесь. Есть код:

CODE (html):
скопировать код в буфер обмена
  1.  <div id="thief">
  2.         <img src="http://i43.fastpic.ru/big/2012/0804/4b/41f5f13419b0b72bd2647814ad30a94b.jpg" class="bbCodeImage" border="0" alt=""/>
  3.  </div>
  4.  
  5. <script type="text/javascript">
  6.                 $('#thief img').live('click',function(){
  7.                         var imgURL = $(this).src;
  8.                         alert(imgURL);
  9.                        
  10.                 });
  11. </script>

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

(Отредактировано автором: 15 Сентября, 2012 - 15:13:58)

 
 Top
caballero
Отправлено: 15 Сентября, 2012 - 16:05:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Придумал кое что по проще, с использованием ajax.

и как тебе тут ajax поможет?

Цитата:
мне необходимо, что-бы ссылка извлекалась сразу после перезагрузки страницы

куда извлекалась?

на самом деле все просто
вставляешь уменьшенное изображение в тег ссылки а ссылка ведет на реальное. Что бы не напрягать сервер каждый раз уменьшай изображение при аплоаде дин раз и пусть лежит thumbnail на сервере (много места они не займут)
на него и напрявляй тег изображения


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
byfahrenheit
Отправлено: 15 Сентября, 2012 - 16:17:40
Post Id



Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




caballero пишет:
и как тебе тут ajax поможет?

Изначально подразумеваться, что картинка по спойлером. В самом начале загрузки страницы, я извлекаю ссылку на изображение, а сам тег картинки меняю например на:
CODE (html):
скопировать код в буфер обмена
  1. <div class="ссылка_на_изображение"></div>

Т.е. по сути, картинки на странице уже нет.

После открытия спойлера с помощью ajax меняю блок
CODE (html):
скопировать код в буфер обмена
  1. <div class="ссылка_на_изображение"></div>

на
CODE (html):
скопировать код в буфер обмена
  1. <img src="ссылка_на_изображение">

Благодаря чему начинается загрузка тех изображений, которые находятся в открытом спойлере.

caballero пишет:
вставляешь уменьшенное изображение в тег ссылки а ссылка ведет на реальное. Что бы не напрягать сервер каждый раз уменьшай изображение при аплоаде дин раз и пусть лежит thumbnail на сервере (много места они не займут)

Уже говорил, что не подходит данный вариант. Пользователи не заливаю изображения на форум, а использую хостинги графики, размещают на страницах форума IMG с ссылкой на полное изображение.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB