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
Форумы портала PHP.SU :: Версия для печати :: upload и resize
Форумы портала PHP.SU » » Графика в PHP » upload и resize

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

1. HQ_Maker - 19 Января, 2012 - 11:13:34 - перейти к сообщению
Добрый день всем.
Мне надо было при upload картинки резать на нужнуй резмер.
Чтобы все картинки при upload были размером 191х131.

И подумал зделать так чтоб при upload картинка отрезалось, потом сохранилось..

Посоветуйте пожалуста безапоснее resize картинку при upload ?

Например есть функция

PHP:
скопировать код в буфер обмена
  1. function resize($file_input, $file_output, $w_o, $h_o, $percent = false) {
  2.         list($w_i, $h_i, $type) = getimagesize($file_input);
  3.         if (!$w_i || !$h_i) {
  4.                 echo 'Невозможно получить длину и ширину изображения';
  5.                 return;
  6.         }
  7.         $types = array('','gif','jpeg','png');
  8.         $ext = $types[$type];
  9.         if ($ext) {
  10.                 $func = 'imagecreatefrom'.$ext;
  11.                 $img = $func($file_input);
  12.         } else {
  13.                 echo 'Некорректный формат файла';
  14.                 return;
  15.         }
  16.         if ($percent) {
  17.                 $w_o *= $w_i / 100;
  18.                 $h_o *= $h_i / 100;
  19.         }
  20.         if (!$h_o) $h_o = $w_o/($w_i/$h_i);
  21.         if (!$w_o) $w_o = $h_o/($h_i/$w_i);
  22.  
  23.         $img_o = imagecreatetruecolor($w_o, $h_o);
  24.         imagecopyresampled($img_o, $img, 0, 0, 0, 0, $w_o, $h_o, $w_i, $h_i);
  25.         if ($type == 2) {
  26.                 return imagejpeg($img_o,$file_output,100);
  27.         } else {
  28.                 $func = 'image'.$ext;
  29.                 return $func($img_o,$file_output);
  30.         }
  31. }




и страница upload


PHP:
скопировать код в буфер обмена
  1.  
  2. if(empty($POST["file"])){
  3. echo '
  4. <form action="test.php?dell=go&'.$_SERVER["QUERY_STRING"].'" enctype="multipart/form-data" method="post">
  5. <input type="file" name="file" accept="image/jpeg,image/gif" autocomplete="off" />
  6. <input type="submit" /></form>';}
  7.  
  8.  
  9.  
  10.  
  11.  
  12. [b]else {
  13.  
  14. if(empty($_FILES['file']['tmp_name'])) {echo 'ERROR'; break;}
  15.                         else {echo 'ok';
  16.                        
  17.                         resize($_FILES['file']['tmp_name'], $_FILES['file']['name'], 190, 131);
  18.                         echo $_FILES['file']['tmp_name'];
  19.  
  20. }}[/b]
  21.  
  22.  
  23.  
  24.  



При upload мы файл не сохраняем, где временно сохряняеться (tmp папка) оттуда берем вставляем на функцию resize. Так относитьсо правильно ?
2. CrazyOne - 18 Мая, 2012 - 11:36:41 - перейти к сообщению
Ну правильно, а что тебя смущает? Обрезал картинку, затем загрузил на сервер и всё.

Правда так лучше делать, если тебе не нужен оригинал.

 

Powered by ExBB FM 1.0 RC1