ResizingimageswithPHP (Php generates a thumbnail)

Source: Internet
Author: User
Tags imagejpeg
ThefollowingscriptwilleasilyallowyoutoresizeimagesusingPHP. Can the Php code below easily generate thumbnails? Php ** File: SimpleImage. php * Author: SimonJarvis * Copyright: 2006SimonJarvis * Date: 081106 * Link: www. white-hat

The following script will easily allow you to resize images using PHP. The following Php code is very easy for you to generate thumbnails? Php/** File: SimpleImage. php * Author: Simon Jarvis * Copyright: 2006 Simon Jarvis * Date: 08/11/06 * Link: http://www.white-hat

The following script will easily allow you to resize images using PHP.

The following Php code allows you to easily generate thumbnails.

 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;    }       }

(Usage) Usage

Save the above file as SimpleImage. php and take a look at the following examples of how to use the script.

Save the above Code, with the file name SimpleImage. php. See how to use the script in the following example.

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

The first example is an image named picture.jpg, Which is scaled back to a x image and saved as picture2.jpg.

 load('picture.jpg');    $image->resize(250,400);    $image->save('picture2.jpg');

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.

If you want to Resize an image and specify the width to maintain a high proportion of width, you can use the resizeToWidth method.

include('SimpleImage.php');$image = new SimpleImage();$image->load('picture.jpg');$image->resizeToWidth(250);$image->save('picture2.jpg');

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

If you want to Resize the image according to the specified percentage

include('SimpleImage.php');$image = new SimpleImage();$image->load('picture.jpg');$image->scale(50);$image->save('picture2.jpg');

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

You can handle more tasks at the same time. The following example creates two new images with a height of 200px and 500px respectively.

include('SimpleImage.php');$image = new SimpleImage();$image->load('picture.jpg');$image->resizeToHeight(500);$image->save('picture2.jpg');$image->resizeToHeight(200);$image->save('picture3.jpg');

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

Outputs images directly in the browser and does not save them as file-based. This is useful for generating thumbnails online.

header('Content-Type: image/jpeg');include('SimpleImage.php');$image = new SimpleImage();$image->load('picture.jpg');$image->resizeToWidth(150);$image->output();

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

In the following example, Resize an image uploaded from form

 load($_FILES['uploaded_image']['tmp_name']);      $image->resizeToWidth(150);      $image->output();   } else { ?>     
 
Further Information)

This script will eventually be developed further to include functions for easily sharpening, bluring, cropping, brightening and coloring images.
If you have any problems using this script please email us.
If you find this script useful then please consider making a donation to the developer

Reference URL:

Http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.