$maxsize = 100;
$image="img.jpg";
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $maxsize / $width;
$y_ratio = $maxsize / $height;
if ( ($width <= $maxsize) && ($height <= $maxsize) ) {
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $maxsize) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $maxsize;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $maxsize;
}
$src = ImageCreateFromJpeg($image);
$dst = ImageCreateTrueColor($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
header("Content-type: image/jpeg");
ImageJpeg ($dst, null, 40);
ImageDestroy($src);
ImageDestroy($dst);