PHP Thumbnail Image and save file





16
Date Submitted Tue. Dec. 12th, 2006 9:14 PM
Revision 1 of 1
Beginner adorkable81
Tags PHP | Thumbnail
Comments 0 comments
Ok, another thumbnail PHP function. This function support resize of JPEG and GIF, and resize with aspect ratio (set $THUMBX=0 if you wish it is resized with the Height, $THUMBY=0 if blah blah blah, you get the point)

function createthumb($IMAGE_SOURCE,$THUMB_X,$THUMB_Y,$OUTPUT_FILE,$ASPECT="true",$format="jpg"){
  $BACKUP_FILE = $OUTPUT_FILE . "_backup.$format";
  copy($IMAGE_SOURCE,$BACKUP_FILE);
  $IMAGE_PROPERTIES = GetImageSize($BACKUP_FILE);
  if (!$IMAGE_PROPERTIES[2] == 2) {
   return(0);
  } else {
        if($format=="jpg")
        $SRC_IMAGE = ImageCreateFromJPEG($BACKUP_FILE);
   else
        $SRC_IMAGE = ImageCreateFromGIF($BACKUP_FILE);
   $SRC_X = ImageSX($SRC_IMAGE);
   $SRC_Y = ImageSY($SRC_IMAGE);
   if($ASPECT=="true")
        {
                   $SCALEX = $THUMB_X/($SRC_X);
                   $SCALEY = $THUMB_Y/($SRC_Y);
                   if (($THUMB_Y == 0) && ($THUMB_X == 0)) {
                         return(0);
                   } elseif ($THUMB_Y == 0) {
                         $THUMB_Y = $SRC_Y*$SCALEX;
                         $RATIO=MAX($SCALEY,$SCALEX);
                   } elseif ($THUMB_X == 0) {
                         $THUMB_X = $SRC_X*$SCALEY;
                         $RATIO=MAX($SCALEY,$SCALEX);
                   }
                   if($SCALEY>0 && $SCALEY<1 && $SCALEX>0 && $SCALEX<1)
                                $RATIO=MIN($SCALEY,$SCALEX);
                   elseif($SCALEX>1 || $SCALEY>1)
                                $RATIO=MAX($SCALEY,$SCALEX);
                       
                        $THUMB_X=$SRC_X*$RATIO;              
                        $THUMB_Y=$SRC_Y*$RATIO
        }
        else
        {
        $RATIO=1;
        }
   $THUMB_X = (int)($THUMB_X);
   $THUMB_Y = (int)($THUMB_Y);
   $DEST_IMAGE = imagecreatetruecolor($THUMB_X, $THUMB_Y);
   unlink($BACKUP_FILE);
   if (!imagecopyresampled($DEST_IMAGE, $SRC_IMAGE, 0, 0, 0, 0, $THUMB_X, $THUMB_Y, $SRC_X, $SRC_Y)) {
     imagedestroy($SRC_IMAGE);
     imagedestroy($DEST_IMAGE);
     return(0);
   } else {
     imagedestroy($SRC_IMAGE);
     if (ImageJPEG($DEST_IMAGE,$OUTPUT_FILE)) {
       imagedestroy($DEST_IMAGE);
       return(1);
     }
     imagedestroy($DEST_IMAGE);
   }
   return(0);
  }

}
 

Mike V

Comments

There are currently no comments for this snippet.

Voting