Cropping Images using PHP

This script will allow you to make a smaller image of a bigger image, but at the same time crop it. This will prevent the image looking stretched and deformed.

We will create this using a class (Sorry using PHP 4 at the moment, but should work on 5)
Firstly lets set up the class.

PHP Code: class cropImage{
 
//code here
}  
Now we need to set up some variables to be used throughout the program.

PHP Code: var $imgSrc,$myImage,$cropHeight,$cropWidth,$x,$y,$thumb;  
The variables above will be explained once we use them. Now we need to create the first function. This function will get the image we are going to crop, work out its dimension and then use them dimensions to work out how we are going to crop it.

PHP Code: 
function setImage($image)
{

//Your Image
   
$this->imgSrc $image
                     
//getting the image dimensions
   
list($width$height) = getimagesize($this->imgSrc); 
                     
//create image from the jpeg
   
this->myImage imagecreatefromjpeg($this->imgSrc) or die(“Error: Cannot find image!”); 
            
       if(
$width $height$biggestSide $width//find biggest length
       
else $biggestSide $height
                     
//The crop size will be half that of the largest side 
   
$cropPercent .5// This will zoom in to 50% zoom (crop)
   
$this->cropWidth   $biggestSide*$cropPercent
   
$this->cropHeight  $biggestSide*$cropPercent
                     
                     
//getting the top left coordinate
   
$this->= ($width$this->cropWidth)/2;
   
$this->= ($height$this->cropHeight)/2;
             
}  
Now we actually need to start creating the actual cropped image.

PHP Code: function createThumb()
{
                    
  
$thumbSize 250// will create a 250 x 250 thumb
  
$this->thumb imagecreatetruecolor($thumbSize$thumbSize); 

  
imagecopyresampled($this->thumb$this->myImage00,$this->x$this->y$thumbSize$thumbSize$this->cropWidth$this->cropHeight); 
}  
Now all we need to do is render the image out.

PHP Code: function renderImage()
{
                     
   
header(‘Content-type: image/jpeg’);
   
imagejpeg($this->thumb);
   
imagedestroy($this->thumb); 
}  
Now we just need to create the instance 

PHP Code: $image = new cropImage;
$image->setImage($src);
$image->createThumb();
$image->renderImage();  
You can use this script to display a thumb of images on a new page, by using the following page.

PHP Code: <img src=“thumbcreate.php?src=images/largimg.jpg”//link to large image 

 

Source: http://www.techgig.com/skillpage/PHP/Cropping-Images-using-PHP/600

Advertisements

About amitsonikhandwa
I am a web developer working in PHP and MYSQL with AJAX, jQuery and JavaScript. I am in web development since 2007.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s