Resizing
|
|
|
|
<?php /*
* resize_jpeg takes in a local image and outputs a smaller copy.
* you send the full unix path, including filename, to the local
* image (a relative path will work, too, just not as reliably),
* the full path to the new, smaller image, and the maximum width
* and height you'd like the image to be constrained within.
* the script will not distort the image at all, except for the
* standard degradation of the image through resizing.
* returns TRUE or FALSE
*
* ex: resize_jpeg ( "/home/allah/images/blah.jpg", "/home/allah/images/small_blah.jpg", 300 );
* ex: resize_jpeg ( "../images/yikes.jpg", "../images/800x800_yikes.jpg", 800, 800 );
*/ function resize_jpeg( $image_file_path, $new_image_file_path, $max_width=480, $max_height=1600 )
{
$return_val = 1;
$return_val = ( ($img = ImageCreateFromJPEG ( $image_file_path )) && $return_val == 1 ) ? "1" : "0";
$FullImage_width = imagesx ($img); // Original image width
$FullImage_height = imagesy ($img); // Original image height
// now we check for over-sized images and pare them down
// to the dimensions we need for display purposes
$ratio = ( $FullImage_width > $max_width ) ? (real)($max_width / $FullImage_width) : 1 ;
$new_width = ((int)($FullImage_width * $ratio)); //full-size width
$new_height = ((int)($FullImage_height * $ratio)); //full-size height
//check for images that are still too high
$ratio = ( $new_height > $max_height ) ? (real)($max_height / $new_height) : 1 ;
$new_width = ((int)($new_width * $ratio)); //mid-size width
$new_height = ((int)($new_height * $ratio)); //mid-size height
// --Start Full Creation, Copying--
// now, before we get silly and 'resize' an image that doesn't need it...
if ( $new_width == $FullImage_width && $new_height == $FullImage_height )
copy ( $image_file_path, $new_image_file_path );
$full_id = ImageCreate( $new_width , $new_height ); //create an image
ImageCopyResized( $full_id, $img,
0,0, 0,0, //starting points
$new_width, $new_height,
$FullImage_width, $FullImage_height );
$return_val = ( $full = ImageJPEG( $full_id, $new_image_file_path, 80 )
&& $return_val == 1 ) ? "1" : "0";
ImageDestroy( $full_id );
// --End Creation, Copying--
return ($return_val) ? TRUE : FALSE ;
}
?>
|
|
|
Usage Example
|
<? // this makes sure we've got a unique name if (isset($UploadFile) && $UploadFile != 'none'):
//this addslashes and str replace are to ensure that there are no spaces or wierd chars
$PictureFile = addslashes(str_replace(" ", "_", $UploadFile_name));
copy( $UploadFile, FULL_PATH . "images/uploads/" . $PictureFile ."" );
if ( $Resize ):
$resize_worked = resize_jpeg(FULL_PATH . "images/uploads/" . $PictureFile, FULL_PATH . "images/uploads/" . $PictureFile);
endif;
endif; ?>
|
|
|
Rate This Script
|
|
|
|