Zend - The PHP Company




Resizing

Add Code


Resize Jpgs  

Type: code fragment
Added by: allah03
Entered: 07/12/2000
Last modified: 04/12/2000
Rating: **** (6 votes)
Views: 16187
A quick function that shrinks images, maintaining integrity of the image (no stretching). You pass the path to the image, the path for the new image, and the size constraints within which the image should fall, and the function returns true or false.


<?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" "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) : ;
    
$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) : ;
    
$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_path80 )
                 && 
$return_val == ) ? "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$UploadFileFULL_PATH "images/uploads/" $PictureFile ."" );
    if ( 
$Resize ):
        
$resize_worked resize_jpeg(FULL_PATH "images/uploads/" $PictureFileFULL_PATH "images/uploads/" $PictureFile);
    endif;
endif;
?>


Rate This Script





Search



This Category All Categories