Upload and resize image on 240 px

  1. function upload_image($image, $size = 240) {
  2. define('DS', DIRECTORY_SEPARATOR);
  3.  
  4. $dir = 'tmp';
  5.  
  6. if(!is_dir($dir)) {
  7. mkdir($dir, 0777, 1);
  8. }
  9.  
  10. if ($image) {
  11. $newname = $_FILES['image']['name'];    
  12. move_uploaded_file($image, $dir . DS . $newname);
  13. $info = @getimagesize($dir . DS . $newname);
  14. if ($info) {
  15. if ($info[2] > 3) {
  16. echo '<div>Не верный тип файла</div>';
  17. } else {                      
  18. switch ($info[2]) {
  19. case 1:
  20. $function = 'imagecreatefromgif';
  21. break;
  22. case 2:
  23. $function = 'imagecreatefromjpeg';
  24. break;
  25. case 3:
  26. $function = 'imagecreatefrompng';
  27. break;
  28. }
  29. $image = $function($dir . DS . $newname);
  30. }
  31. $x = imagesx($image);
  32. $y = imagesy($image);
  33.  
  34. } else {
  35. echo '<div>Ошибка загрузки файла</div>';
  36. }
  37.  
  38. $filename = $dir . DS . time() . '.jpg';
  39.  
  40. // пропорционально уменьшить по ширине до 240
  41. if ($y > $size) {
  42. $newx = $size;
  43. $newy = $y * ($size / $x);
  44. } else {
  45. $newx= $x;
  46. $newy = $y;
  47. }
  48.  
  49. $newimg = imagecreatetruecolor($newx, $newy);
  50.  
  51. if ($info[2]==3) {
  52. // прозрачность для png
  53. imagefill($newimg, 0, 0, imagecolorallocate($newimg, 255, 255, 255));
  54. } elseif ($info[2]==1) {
  55. // прозрачность для gif    
  56. imagecolortransparent($image, imagecolorallocate($image, 255, 255, 255));    
  57. }
  58.  
  59. imagecopyresampled($newimg, $image, 0, 0, 0, 0, $newx, $newy, $x, $y);  
  60. @imagejpeg($newimg, $filename, 100);
  61.  
  62. } else {
  63. return false;
  64. }
  65. }
возможность загружать gif , png, jpg и изменять пропорционально размер
пример
  1. @upload_image($_FILES['image']['tmp_name'], 500); // 500 px
  2.  
  3. echo '<form enctype="multipart/form-data" action="" method="post">' .
  4. '<div>Загрузить фото</div>' .
  5. '<div><input name="image" type="file" /></div>' .
  6. '<div><input type="submit" name="submit" value="Ok" /></div>' .
  7. '</form>';

Реклама

Мы в соцсетях

tw tg yt gt