This is a nifty function to resize an image of unknown height and width to a pre-determined size. This is very useful if you have user submitted images, like the ones here on php builder.
<? function setImageSize($image_file) {
$maxSize = 100; // set this varible to max width or height
$image_size = getimagesize($image_file,&$image_info);
$width = $image_size[0];
$height = $image_size[1];
if($width > $maxSize || $height > $maxSize) {
if($width > $maxSize) {
$z = $width;
$i = 0;
while($z > $maxSize) {
--$z; ++$i;
}
$imgSizeArray[0] = $z;
$imgSizeArray[1] = $height - ($height * ($i / $width));
} else {
$z = $height;
$i = 0;
while($z > $maxSize) {
--$z; ++$i;
}
$imgSizeArray[0] = $width - ($width * ($i / $height));
$imgSizeArray[1] = $z;
}
} else {
$imgSizeArray[0] = $width;
$imgSizeArray[1] = $height;
}
return $imgSizeArray;
} ?>
The function returns an array with the new width and height of the image.
Here is an example of using the function:
<? $imgSize = setImageSize("sample.jpg"); ?>
<img src="sample.jpg" width="<? echo $imgSize[0];?>" height="<? echo $imgSize[1]">
This will resize the image to either 100 by x or x by 100 pixels, but only if it is larger than 100.