Simple Image Resize in GD





13
Date Submitted Tue. Mar. 6th, 2007 2:36 PM
Revision 1 of 1
Beginner wlasson
Tags "image resize" | GD | images | PHP | Resize
Comments 1 comments
This is a simple function that resizes and image using the GD add on for PHP.
Just a disclaimer: I know its not perfect, but i figured i would post it because the only other one on here is way confusing to some new PHP developers. Hopefully this one will help you learn how to use GD, and then you can write a better one.

 function resizeImage($file,$scale="",$width="",$height="")
 {
        // If they wish to scale the image.
        if (isset($scale))
        {
               // Create our image object from the image.
               $fullImage = imagecreatefromjpeg($file);
               // Get the image size, used in calculations later.
               $fullSize = getimagesize($file);
               // If there is NOT a thumbnail for this image, make one.
               if (!file_exists("tn_".$file))
               {
                      // Create our thumbnail size, so we can resize to this, and save it.
                      $tnImage = imagecreatetruecolor($fullSize[0]/$scale, $fullSize[1]/$scale);
                      // Resize the image.
                      imagecopyresampled($tnImage,$fullImage,0,0,0,0,$fullSize[0]/$scale,$fullSize[1]/$scale,$fullSize[0],$fullSize[1]);
                      // Create a new image thumbnail.
                      imagejpeg($tnImage, "tn_".$file);
                      
                      // Clean Up.
                      imagedestroy($fullImage);
                      imagedestroy($tnImage);
                      // Return our new image.
                      return "tn_".$file;
               }
               // If there is a thumbnail file, lets just load it.   
               else
                      return "tn_".$file;
        }
        // If they want to force whatever size they want.
        elseif (isset($width) && isset($height))
        {
               return "tn_".$file;
        }
        else
        {
               return false;
        }
 }
 
As im just looking over the code, it doesnt look like the force size works, i will revise this when i get a chance.

Wade Lasson

wlasson.wordpress.com

Comments

Comments Revised Version
Fri. Jan. 18th, 2008 2:18 PM    Newbie scoop_987

Voting