PHP Thumbnail Image and save file
16
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);
}
}






There are currently no comments for this snippet.