Resize Image


 / Published in: PHP
 

Creates a thumbnail from an existing image. $filename is the original filename, while $tmpname is the actual filesystem name (for example, the temporary filename used in a PHP upload). Returns an image resource which you can then output to the browser, or save to a file using imagejpg(), imagepng(), etc.

  1. function resize_image($filename, $tmpname, $xmax, $ymax)
  2. {
  3. $ext = explode(".", $filename);
  4. $ext = $ext[count($ext)-1];
  5.  
  6. if($ext == "jpg" || $ext == "jpeg")
  7. $im = imagecreatefromjpeg($tmpname);
  8. elseif($ext == "png")
  9. $im = imagecreatefrompng($tmpname);
  10. elseif($ext == "gif")
  11. $im = imagecreatefromgif($tmpname);
  12.  
  13. $x = imagesx($im);
  14. $y = imagesy($im);
  15.  
  16. if($x <= $xmax && $y <= $ymax)
  17. return $im;
  18.  
  19. if($x >= $y) {
  20. $newx = $xmax;
  21. $newy = $newx * $y / $x;
  22. }
  23. else {
  24. $newy = $ymax;
  25. $newx = $x / $y * $newy;
  26. }
  27.  
  28. $im2 = imagecreatetruecolor($newx, $newy);
  29. imagecopyresized($im2, $im, 0, 0, 0, 0, floor($newx), floor($newy), $x, $y);
  30. return $im2;
  31. }

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: tongeng on January 4, 2007

I can't not to use after return value . Example : I want to Link this image to resize, I can't. I want to print images tree line, I can't.

Please tell me.

Best regards,

Thon, Thank you.

Posted By: kylejames on October 30, 2007

This is awesome, this is just what I have been looking for, thank you.

Posted By: NeekGerd on October 18, 2011

You should use imagecopyresampled() instead of imagecopyresized(). You'll have much soften images. And arguments are exactly the same.

Posted By: Steffen82 on November 3, 2012

A nice OOP-PHP5-Class for crating Thumbnails: https://github.com/SteffenHagdorn/Pixlie

You need to login to post a comment.