PHP.SU

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

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

> Найдено сообщений: 1
AirDArk Отправлено: 10 Мая, 2013 - 21:23:11 • Тема: Изменение размеров изображения • Форум: Обсуждение статей

Ответов: 5
Просмотров: 6252
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form name="upload" action="index.php" enctype="multipart/form-data" method="post">
  3.             <label>Выберите картинку</label>
  4.             <input type="hidden" name="MAX_FILE_SIZE" value="102400" />
  5.             <input type="file" name="uploadimg" class="input_file" />
  6.      
  7.             <label>Введите Имя Картинки</label>
  8.             <input type="text" name="name"/>
  9.  
  10.             <input type="submit" name="Submit" value="Добавить картинку" class="submit">
  11. </form>
  12.  
  13. <?php
  14.  
  15.                                 //удаляем пробелы из введенного имени
  16.                         while(strpos($name," ")!==false)
  17.                         {
  18.                                 $name=str_replace(" ","",$name);
  19.                                
  20.                         }
  21.  
  22.                   // меняем англ буквы на Русские
  23.                
  24.                   $name=strtr($name,"абвгдеёзийклмнопрстуфхъыэ_","abvgdeeziyklmnoprstufh'iei");  // <-----  строчные
  25.                
  26.                   $name=strtr($name,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_","ABVGDEEZIYKLMNOPRSTUFH'IEI");  // <-----  ПРОПИСНЫЕ
  27.                
  28.                         $name=strtr($name, array(
  29.                        
  30.                         "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
  31.                         "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
  32.                         "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
  33.                         "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
  34.                         "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
  35.                                 )
  36.                           );
  37. //Проверка, действительно ли загруженный файл является изображением
  38. $imageinfo = getimagesize($_FILES['uploadimg']['tmp_name']);
  39. if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] !='image/png')
  40. {
  41.         print '<div class="msg">Загруженный файл не является изображением, mime = ' . $imageinfo['mime'] . '</div>';
  42.         die;
  43. }
  44. //Сохранение загруженного изображения с расширением, которое возвращает функция getimagesize()
  45. //Расширение изображения
  46. $mime=explode("/",$imageinfo["mime"]);
  47.  
  48. //Задаем имя картинки
  49. //$namefile=explode(".",$_FILES["uploadimg"]["name"]); - исходное имя файла
  50.         //Задаем путь к директории
  51.                 $uploaddir = "W:/home/site.ru/www/img/"; //Полный путь
  52.                 $relativedir = "../img/"; //Относительный путь
  53.  
  54. //Функция, перемещает файл из временной, в указанную вами папку
  55. if (move_uploaded_file($_FILES["uploadimg"]["tmp_name"], $uploaddir.$namefile.".".$mime[1]))
  56. {
  57.                         $namefileBig=($namefile.".".$mime[1]);
  58.                         print "Изображение успешно загружено. Его имя - " . $namefileBig;
  59.                         //подключение функции уменьшения размеров
  60.                         $src_name = ($uploaddir.$namefileBig);
  61.                         $dst_name = ($uploaddir.$namefile."_small.".$mime[1]);
  62.                         $dst_name2 = ($uploaddir.$namefile."_mid.".$mime[1]);
  63.  
  64.                
  65.                         $size = 137; //размер маленькой картинки - ширина
  66.                         $size2 = 210; //размер средней картинки - ширина
  67.                                            //Большая картинка остается с исходника
  68.                        
  69.                         $small_pic = ($relativedir.$namefile."_small.".$mime[1]); //формируем относительный путь маленькой картинки, добавляя в имя на конец _small
  70.                         $mid_pic = ($relativedir.$namefile."_mid.".$mime[1]); //формируем относительный путь средней картинки добавляя в имя на конец _mid
  71.                         $big_pic = ($relativedir.$namefileBig); //формируем относительный путь большой картинки - имя остается не изменным
  72.                
  73.                 list($src_w, $src_h) = getimagesize($src_name);
  74.                                
  75.                                 if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] !='image/png')
  76.                         {
  77.                                 print "Загруженный файл не является изображением";
  78.                                 die;
  79.                         }
  80.                                 else {echo '<p>file - ' . $imageinfo['mime'] .'</p>';}
  81.                        
  82.                                 if ( $src_h > $src_w )
  83.                                 {
  84.                                 $dst_h = $size;
  85.                                 $dst_w = ceil(($dst_h / $src_h) * $src_w);
  86.                                
  87.                                 $dst_h2 = $size2;
  88.                                 $dst_w2 = ceil(($dst_h2 / $src_h) * $src_w);
  89.                                 }
  90.                                 else
  91.                                 {
  92.                                 $dst_w = $size;
  93.                                 $dst_h = ceil(($dst_w / $src_w) * $src_h);
  94.                                
  95.                                 $dst_w2 = $size2;
  96.                                 $dst_h2 = ceil(($dst_w2 / $src_w) * $src_h);
  97.                                 }
  98.                                
  99.                                 if ($imageinfo['mime'] == 'image/jpeg' or $imageinfo['mime'] == 'image/jpg')
  100.                                         {
  101.                                         $dst_im = imagecreatetruecolor($dst_w, $dst_h);
  102.                                         $dst_im2 = imagecreatetruecolor($dst_w2, $dst_h2);
  103.                                         $src_im = imagecreatefromjpeg($src_name);
  104.                                        
  105.                                         imagecopyresampled($dst_im, $src_im, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
  106.                                         imagecopyresampled($dst_im2, $src_im, 0, 0, 0, 0, $dst_w2, $dst_h2, $src_w, $src_h);
  107.                                        
  108.                                         imagejpeg($dst_im, $dst_name, 100);
  109.                                         imagejpeg($dst_im2, $dst_name2, 100);
  110.                                        
  111.                                         imagedestroy($dst_im);
  112.                                         imagedestroy($dst_im2);
  113.                                         imagedestroy($src_im);
  114.                                         }
  115.                                 else
  116.                                 {
  117.                                                 if ($imageinfo['mime'] = 'image/png')
  118.                                                 {
  119.                                                 echo '<p>Type - PNG</p>';
  120.                                                 $src_im = imagecreatefrompng($src_name); //создаем ресурс из исходного изображения - в формате пнг
  121.                                                 $dst_im = imagecreatetruecolor($dst_w, $dst_h); //создаем новый ресурс с нужной шириной и высотой (полноцветное)
  122.                                                
  123.                                                 imageAlphaBlending($dst_im, false); //режим смешивания для пнг типа
  124.                                                 imageSaveAlpha($dst_im, true);  //сохраняем прозрачность
  125.                                                 imagecopyresampled($dst_im, $src_im, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
  126.                                                
  127.                                                 imagepng($dst_im, $dst_name, 100);
  128.                                                
  129.                                                 imagedestroy($dst_im);
  130.                                                 imagedestroy($src_im);
  131.                                                 }
  132.                                                
  133.                                                 else {echo 'Произошла ошибка при уменьшении';}
  134.                                 }
  135.         }
  136.  
  137.         else{
  138.                 echo 'Произошла ошибка';
  139.         }
  140. ?>
  141.  
  142.  


Этот скрипт пропорционально уменьшает. Может кому пригодится...

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB