PHOTO_MAX_WIDTH) { //Copy the original to [file]_o.jpg if necessary $newPhotoFile = str_replace(".jpg", "_o.jpg", $photoFile); if (!file_exists($newPhotoFile)) { if (!copy($photoFile, $newPhotoFile)) { print "Error: couldn't copy $photoFile.
"; } } //Resize $newheight = Round($height * PHOTO_MAX_WIDTH) / $width; if (resizePhoto($photoFile,PHOTO_MAX_WIDTH,$newheight,$photoFile,false)) { print "$photoFile resized.
"; } } elseif ($height > PHOTO_MAX_HEIGHT) { //Copy the original to [file]_o.jpg if necessary $newPhotoFile = str_replace(".jpg", "_o.jpg", $photoFile); if (!file_exists($newPhotoFile)) { if (!copy($photoFile, $newPhotoFile)) { print "Error: couldn't copy $photoFile.
"; } } $newwidth = Round($width * PHOTO_MAX_HEIGHT) / $height; if (resizePhoto($photoFile,$newwidth,PHOTO_MAX_HEIGHT,$photoFile,false)) { print "$photoFile resized.
"; } } //Set up the base file name for thumbnails $thumbBaseFile = $thumbYearDir . "\\" . md5(SALT.$photoID); //See if square thumb file is needed (85x85) $thumbFile_s = $thumbBaseFile . "_s.jpg"; if (!file_exists($thumbFile_s)) { if (resizePhoto($photoFile,85,85,$thumbFile_s,true)) { print "$thumbFile_s created.
"; } } //See if tiny thumb file is needed (100 max) $thumbFile_t = $thumbBaseFile . "_t.jpg"; if (!file_exists($thumbFile_t)) { if ($width > $height) { $newheight = Round($height * 100) / $width; if (resizePhoto($photoFile,100,$newheight,$thumbFile_t,false)) { print "$thumbFile_t created.
"; } } else { $newwidth = Round($width * 100) / $height; if (resizePhoto($photoFile,$newwidth,100,$thumbFile_t,false)) { print "$thumbFile_t created.
"; } } } //See if medium thumb file is needed (240 max) $thumbFile_m = $thumbBaseFile . "_m.jpg"; if (!file_exists($thumbFile_m)) { if ($width > $height) { $newheight = Round($height * 240) / $width; if (resizePhoto($photoFile,240,$newheight,$thumbFile_m,false)) { print "$thumbFile_m created.
"; } } else { $newwidth = Round($width * 240) / $height; if (resizePhoto($photoFile,$newwidth,240,$thumbFile_m,false)) { print "$thumbFile_m created.
"; } } } $cnt++; if ($cnt == 10) { sleep(2); $cnt = 0; } flush(); ob_flush(); } } //thanks for the help ZenPhoto, http://www.zenphoto.org/ //and fluffle, http://us2.php.net/manual/en/function.imagecopyresampled.php#53031 function resizePhoto($original,$width,$height,$destination,$crop) { if ($originalImage = @imagecreatefromjpeg($original)) { $originalWidth = imagesx($originalImage); $originalHeight = imagesy($originalImage); $newImage = imagecreatetruecolor($width, $height); if ($crop) { if ($originalWidth > $originalHeight) { $offsetWidth = ($originalWidth-$originalHeight)/2; $offsetHeight = 0; $originalWidth = $originalHeight; } elseif ($originalHeight > $originalWidth) { $offsetWidth = 0; $offsetHeight = ($originalHeight-$originalWidth)/2; $originalHeight = $originalWidth; } else { $offsetWidth = 0; $offsetHeight = 0; } imagecopyresampled($newImage, $originalImage, 0, 0, $offsetWidth, $offsetHeight, $width, $height, $originalWidth, $originalHeight); } else { imagecopyresampled($newImage, $originalImage, 0, 0, 0, 0, $width, $height, $originalWidth, $originalHeight); } //Create the image file touch($destination); imagejpeg($newImage, $destination, PHOTO_QUALITY); chmod($destination, 0644); imagedestroy($newImage); imagedestroy($originalImage); return true; } else { print "Couldn't load file: $original"; return false; } } ?>