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]   

> Описание: не получается исправить
GoloArt
Отправлено: 21 Марта, 2012 - 17:43:38
Post Id


Новичок


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


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




Вот в общем сам скрипт

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.      // имя папки, где лежат картинки
  5. $papka = "prikol";
  6.  
  7.      // время выполнения сценария не ограничено
  8.      // если не сделать так, то при большом количестве
  9.      // картинок время одного процесса истечёт, что
  10.      // нам не надо, поэтому ставим  set_time_limit (0);
  11.  
  12.      // качество сохраняемой картинки в процентах от
  13.      // оригинала можете ставить от 0 до 100, это проценты.
  14.      // чем больше это число, тем с большим качеством
  15.      // сохранится новая картинка
  16. $qulity = 70;
  17.  
  18.      // максимальный размер стороны нового фото в пикселях
  19.      // все картинки приведёт к этому размеру, то есть
  20.      // сони все танут одинаковыми
  21. $size_max = 600;
  22.  
  23.      // подключает модуль GD динамически, если она не подключена
  24.      // если выдаст Нет файла библиотеки, то нет у вас модуля GD
  25. $bibl_ext =  dirname ($_SERVER['SCRIPT_FILENAME']).'/extensions/php_gd.dll';
  26.  if ( !extension_loaded ('gd') and is_file ($bibl_ext)){  dl ("extensions/php_gd.dll"); }
  27.  if ( !extension_loaded ('gd')) {  print "Нет файла библиотеки $bibl_ext"; exit ;}
  28.  
  29.      // вспомогательная функция, определяет тип файла
  30.  function TypeFile ($img_name){
  31. $arr =  GetImageSize ($img_name);
  32.  return $arr[2];
  33. }
  34.  
  35.      // вспомогательная функция, выводим в программу из
  36.      // фотографии графический объект
  37.  function LoadImage ($img_name){
  38.  if (TypeFile ($img_name)==2) { $im = ImageCreateFromJpeg($img_name); }
  39.  if (!$im){ return false; }
  40.  return $im;
  41. }
  42.  
  43.      // основная функция, которая уменьшит все фото в папке $path
  44.  function open_dir_and_small ( $path ) {
  45.  global $qulity, $size_max;
  46. $dh =  opendir ($path);
  47.  while ($entry =  readdir ($dh)){
  48.  if ($entry != "." and $entry != ".."){
  49. $file = $path."/".$entry;
  50. $old = LoadImage($file);
  51.  if ($old==false or preg_match ("~new~",$entry)){ continue; }
  52. $w =  ImageSX ($old);
  53. $h =  ImageSY ($old);
  54.  if ( preg_match ("/(.+)(\..+)/",$file,$arr)){
  55. $path_new = $arr[1].'_new'.$arr[2];
  56.  if ($w> $h){ $w_new = $size_max; $h_new =  ceil ($w_new * $h/$w); }
  57.  else { $h_new = $size_max; $w_new =  ceil ($h_new * $w/$h); }
  58. $new =  imageCreate ($w_new, $h_new);
  59.  ImageCopyResized($new, $old, 0, 0, 0, 0, $w_new, $h_new, $w, $h);
  60.  imageJpeg ($new, $path_new, $qulity);
  61.  imageDestroy ($new);
  62.  print $path_new."<br>\n";
  63. }
  64.  imageDestroy ($old);
  65. }
  66. }
  67.  closedir ($dh);
  68. }
  69.  
  70.      // применим функции и уменьшим все картинки в папке "prikol"
  71.  open_dir_and_small ( $papka );
  72. ?>
  73.  
  74.  


Поидее он должен сжимать картинку в весе, но при сжатии (в процентах), происходит сине-белый эффект.
Вот к примеру
http://mfree[dot]in/1/screens/ae4c3d[dot][dot][dot]6708bf72_new[dot]jpg
 
 Top
Мелкий Супермодератор
Отправлено: 21 Марта, 2012 - 18:23:16
Post Id



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


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


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




попробуйте imagecopyresampled


-----
PostgreSQL DBA
 
 Top
GoloArt
Отправлено: 21 Марта, 2012 - 20:06:15
Post Id


Новичок


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


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




Неподскажите как использовать, просто я просто ноль в скриптах)
 
 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