function resizeUploadedImage() {
global $stagingDirectoryPath;
// This is the temporary file created by PHP
$uploadedfile = $_FILES['uploadfile']['tmp_name'];
// Create an Image from it so we can do the resize
$src = imagecreatefromjpeg($uploadedfile);
// Capture the original size of the uploaded image
list($width,$height)=getimagesize($uploadedfile);
// For our purposes, I have resized the image to be
// 500 pixels wide, and maintain the original aspect
// ratio. This prevents the image from being "stretched"
// or "squashed". If you prefer some max width other than
// 500, simply change the $newwidth variable
$newwidth=500;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
// this line actually does the image resizing, copying from the
original
// image into the $tmp image
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,
$height);
// now write the resized image to disk. I have assumed that you want
the
// resized, uploaded image file to reside in the ./images
subdirectory.
$filename = $stagingDirectoryPath . $_FILES['uploadfile']['name'];
imagejpeg($tmp,$filename,100);
imagedestroy($src);
imagedestroy($tmp); // NOTE: PHP will clean up the temp file it
created when the request
$correctedFileName = $_FILES['uploadfile']['name'];
$correctedFileName = str_replace(" ", "_", $correctedFileName);
$correctedFileName = str_replace("'", "", $correctedFileName);
$correctedFileName = str_replace('"', "", $correctedFileName);
rename( $filename, $stagingDirectoryPath . $correctedFileName );
return $correctedFileName;
// has completed.
}
I grabbed this function from someone a while back. I would give them
credit, but I don't remember where I got it from. Anyway, you can
change the width to whatever you like and it will still keep the
aspect ratio correct. This function is used in conjunction with a
file upload post, but you could switch it so that the file name is
passed to it manually. If nothing else, it would give you a starting
point.
Really, the only thing you need to do is check to see if the file is
less than 500. If it is, don't run the function.