Friday, July 4, 2014

resize image using php

7/04/2014

PHP script can easily allow you to resize image using php class. If you’re looking to resize uploaded images or would want to generate thumbnails from uploaded images, then just try this php class once. It also works on transparent PNG and GIF images.

<?php
/*
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/

class ResizeImage {
 
   var $image;
   var $image_type;
 
   function load($filename) {
 
      $image_info = getimagesize($filename);
      $this->image_type = $image_info[2];
      if( $this->image_type == IMAGETYPE_JPEG ) {
 
         $this->image = imagecreatefromjpeg($filename);
      } elseif( $this->image_type == IMAGETYPE_GIF ) {
 
         $this->image = imagecreatefromgif($filename);
      } elseif( $this->image_type == IMAGETYPE_PNG ) {
 
         $this->image = imagecreatefrompng($filename);
      }
   }
   function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
 
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image,$filename,$compression);
      } elseif( $image_type == IMAGETYPE_GIF ) {
 
         imagegif($this->image,$filename);
      } elseif( $image_type == IMAGETYPE_PNG ) {
 
         imagepng($this->image,$filename);
      }
      if( $permissions != null) {
 
         chmod($filename,$permissions);
      }
   }
   function output($image_type=IMAGETYPE_JPEG) {
 
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image);
      } elseif( $image_type == IMAGETYPE_GIF ) {
 
         imagegif($this->image);
      } elseif( $image_type == IMAGETYPE_PNG ) {
 
         imagepng($this->image);
      }
   }
   function getWidth() {
 
      return imagesx($this->image);
   }
   function getHeight() {
 
      return imagesy($this->image);
   }
   function resizeToHeight($height) {
 
      $ratio = $height / $this->getHeight();
      $width = $this->getWidth() * $ratio;
      $this->resize($width,$height);
   }
 
   function resizeToWidth($width) {
      $ratio = $width / $this->getWidth();
      $height = $this->getheight() * $ratio;
      $this->resize($width,$height);
   }
 
   function scale($scale) {
      $width = $this->getWidth() * $scale/100;
      $height = $this->getheight() * $scale/100;
      $this->resize($width,$height);
   }
 
   function resize($width,$height) {
      $new_image = imagecreatetruecolor($width, $height);
      imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
      $this->image = $new_image;
   }

   function resizeTransparentImage($width,$height) {
    $new_image = imagecreatetruecolor($width, $height);
    if( $this->image_type == IMAGETYPE_GIF || $this->image_type == IMAGETYPE_PNG ) {
        $current_transparent = imagecolortransparent($this->image);
        if($current_transparent != -1) {
            $transparent_color = imagecolorsforindex($this->image, $current_transparent);
            $current_transparent = imagecolorallocate($new_image, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']);
            imagefill($new_image, 0, 0, $current_transparent);
            imagecolortransparent($new_image, $current_transparent);
        } elseif( $this->image_type == IMAGETYPE_PNG) {
            imagealphablending($new_image, false);
            $color = imagecolorallocatealpha($new_image, 0, 0, 0, 127);
            imagefill($new_image, 0, 0, $color);
            imagesavealpha($new_image, true);
        }
    }
    imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
    $this->image = $new_image; 
  }
 
}

?>

Usage 1 :

The first example below will load a file named picture.jpg resize it to 250 pixels wide and 400 pixels high and resave it as picture2.jpg
<?php
/*
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/

   $file_location = '/var/www/yourwebsite/uploads/'; # Image folder Path
  $image = new ResizeImage();
   $image->load($file_location.$file_location.'picture.jpg');
   $image->resize(250,400);
   $image->save('picture2.jpg');
?>

Usage 2 :

If you want to resize to a specifed width but keep the dimensions ratio the same then the script can work out the required height for you, just use the resizeToWidth function.
<?php
/*
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/
   $file_location = '/var/www/yourwebsite/uploads/'; # Image folder Path
  $image = new ResizeImage();
   $image->load($file_location.'picture.jpg');
   $image->resizeToWidth(250);
   $image->save('picture2.jpg');
?>

Usage 3 :

You may wish to scale an image to a specified percentage like the following which will resize the image to 50% of its original width and height
<?php
/*
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/
   $file_location = '/var/www/yourwebsite/uploads/'; # Image folder Path
  $image = new ResizeImage();
   $image->load($file_location.'picture.jpg');
   $image->scale(50);
   $image->save('picture2.jpg');
?>

Usage 4 :

You can of course do more than one thing at once. The following example will create two new images with heights of 200 pixels and 500 pixels
<?php
/*
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/
   $file_location = '/var/www/yourwebsite/uploads/'; # Image folder Path
  $image = new ResizeImage();
   $image->load($file_location.'picture.jpg');
   $image->resizeToHeight(500);
   $image->save('picture2.jpg');
   $image->resizeToHeight(200);
   $image->save('picture3.jpg');
?>

Usage 5 :

The output function lets you output the image straight to the browser without having to save the file. Its useful for on the fly thumbnail generation
<?php
/*
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/
   header('Content-Type: image/jpeg');
   $file_location = '/var/www/yourwebsite/uploads/'; # Image folder Path
  $image = new ResizeImage();
   $image->load($file_location.'picture.jpg');
   $image->resizeToWidth(150);
   $image->output();
?>

Usage 6 :

Resize Transparent gif OR png images
<?php
/*
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/
   $file_location = '/var/www/yourwebsite/uploads/'; # Image folder Path
  $image = new ResizeImage();
   $image->load($file_location.'picture.jpg');
   $image->resizeTransparentImage(250,400);
   $image->save('picture2.jpg');
?>

Usage 7 :

The following example will resize and save an image which has been uploaded via a form

<?php
/*
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/
   if( isset($_POST['submit']) ) {
      $image = new ResizeImage();
      $image->load($_FILES['uploaded_image']['tmp_name']);
      $image->resizeToWidth(150);
      $image->output();
   } else {
 

 
   echo '
'; } ?>

If you have any queries or feedback for this script then please Leave A Response below. Thank You.

helpful? Share this

The Editorial Team of 4everTutorials consists of a group of PHP Professionals.

0 comments:

 

© 2014 4everTutorials. All rights resevered.

Back To Top