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]   

> Описание: посоветуйте скрипт
dmaw
Отправлено: 16 Января, 2010 - 18:17:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


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




Посоветуйте хороший скрипт для обработки фото, сам я пока ещё до этого не дошёл, может кто объяснит как это вообще работает.

у меня есть довольно хороший скрипт, но и он не даёт хорошего качества после загрузки картинки.

CODE (text):
скопировать код в буфер обмена
  1. <?php
  2.  
  3. $path_to_image_directory = 'images/cash/'; //Папка, куда будут загружаться полноразмерные изображения
  4.  
  5. function createThumbnail($filename) {
  6.  
  7. $final_width_of_image = 600; //Размер изображения которые Вы хотели бы получить (И ШИРИНА И ВЫСОТА)
  8. $path_to_image_directory = 'images/cash/'; //Папка, куда будут загружаться полноразмерные изображения
  9. $path_to_thumbs_directory = 'images/';//Папка, куда буду загружать миниатюры
  10.        
  11.         //Определяем формат изображения
  12.         if(preg_match('/[.](jpg)$/', $filename))
  13.         {
  14.                 $im = imagecreatefromjpeg($path_to_image_directory . $filename);
  15.         }
  16.         elseif(preg_match('/[.](gif)$/', $filename))
  17.         {
  18.                 $im = imagecreatefromgif($path_to_image_directory . $filename);
  19.         }
  20.         elseif(preg_match('/[.](JPG)$/', $filename))
  21.         {
  22.                 $im = imagecreatefromjpeg($path_to_image_directory . $filename);
  23.         }
  24.         elseif(preg_match('/[.](png)$/', $filename))
  25.         {
  26.                 $im = imagecreatefrompng($path_to_image_directory . $filename);
  27.         }
  28.        
  29.         $ox = imagesx($im);
  30.         $oy = imagesy($im);
  31.        
  32.         $nx = $final_width_of_image;
  33.         $ny = floor($oy * ($final_width_of_image / $ox));
  34.        
  35.         $nm = imagecreatetruecolor($nx, $ny);
  36.        
  37.         imagecopyresampled($nm, $im, 0, 0, 0, 0, $nx, $ny, $ox, $oy);
  38.        
  39.         //imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);
  40.        
  41.         if(!file_exists($path_to_thumbs_directory)) {
  42.           if(!mkdir($path_to_thumbs_directory)) {
  43.            die("Возникли проблемы загрузки изображения! Попробуйте снова!");
  44.           }
  45.        }
  46.  
  47.         imagejpeg($nm, $path_to_thumbs_directory . $filename);
  48.         $foto = '<img src="' . $path_to_thumbs_directory . $filename . '" alt="image" />';
  49.         echo '<br />Изображение успешно загружено!';
  50. }
  51.  
  52. if(isset($_FILES['fupload']))
  53. {
  54.         //Ставим допустимые форматы изображений для загрузки
  55.         if(preg_match('/[.](jpg)|(JPG)|(gif)|(png)$/', $_FILES['fupload']['name']))
  56.          {
  57.                 $filename_date = date("d_m_Y-H_i_s-");//дата и время загрузки
  58.                 $filename = $filename_date.$_FILES['fupload']['name'];
  59.                
  60.                 $source = $_FILES['fupload']['tmp_name'];      
  61.                 $target = $path_to_image_directory . $filename;
  62.                
  63.                 move_uploaded_file($source, $target);
  64.                
  65.                 createThumbnail($filename);            
  66.         }
  67. }
  68.  
  69. //удаляю оригинал
  70. unlink("$target");
  71.  
  72. ?>


в коде я поменял строку
imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);

на

imagecopyresampled($nm, $im, 0, 0, 0, 0, $nx, $ny, $ox, $oy);

Картинки стали лучшего качества, но хочется ещё лучше!
 
 Top
Монстр_11111
Отправлено: 16 Января, 2010 - 22:00:51
Post Id



Частый гость


Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009  


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




Такс , png на мой взгляд лучше .
А то что вам нужно скорее всего классы . Вот выбирай и тестируй
http://habrahabr[dot]ru/blogs/php/70808/
 
 Top
JustUserR
Отправлено: 17 Января, 2010 - 12:05:00
Post Id



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


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


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




dmaw пишет:
!mkdir($path_to_thumbs_directory
У вас в переменной $path_to_thumbs_directory имя папки хранится со слешем в конце - таким образом создание директории может не работать - лучше хранить без слеша а потом где надо указать путь добавлять его
dmaw пишет:
У меня есть довольно хороший скрипт, но и он не даёт хорошего качества после загрузки картинки
Так он же делает миниатюры причем с принудительным уменьшением качества до 600px - вы бы добавили к тему выводимой картинки ссылку на полноразмерное изображение которое тоже загружается и сохраняется
Монстр_11111 пишет:
Такс , png на мой взгляд лучше
Чем он может быть лучше скажем JPG (Тем более если речь об изображениях типо фотографий) - и тут же пользователь закачивает и загрузка должна быть многоформатной


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
dmaw
Отправлено: 17 Января, 2010 - 19:14:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


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




Пока под рукой имеется пачка скриптов, большинство чем-то очень похожи, буду потихоньку их тестировать и скореевсего напишу что-то своё. Знаний по работе с изо нет, буду учиться Радость
 
 Top
JustUserR
Отправлено: 17 Января, 2010 - 19:35:46
Post Id



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


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


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




dmaw Лучше взять за основу какой-нибудь или потихоньку переделывать его под себя - а когда будет достаточно опыта и значний то напишите свою систему
Также учтите замечания указанные выше Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
dmaw
Отправлено: 17 Января, 2010 - 20:16:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


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




JustUserR пишет:
Так он же делает миниатюры причем с принудительным уменьшением качества до 600px

Да, это и требуется, не всякий уммет пользоваться фотошопом Улыбка
JustUserR пишет:
Лучше взять за основу какой-нибудь или потихоньку переделывать его под себя

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB