Home  >  Article  >  Backend Development  >  Sharing of usage methods and usage examples of PHP image proportional scaling class SimpleImage_PHP Tutorial

Sharing of usage methods and usage examples of PHP image proportional scaling class SimpleImage_PHP Tutorial

WBOY
WBOYOriginal
2016-07-13 10:34:17915browse

Usage example:
Set width, scale proportionally

Copy code The code is as follows:

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

Set the height and scale proportionally
Copy code The code is as follows:

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

Scale to 50%
Copy code The code is as follows:

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

Output directly to the screen after scaling
Copy code The code is as follows:

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


Usage example:

Copy code The code is as follows:

include("SimpleImage.php");//The image processing class is below

$url="http://f3.v.veimg.cn/meadincms/1/2013/0703/20130703100937552.jpg";
$picfile = down($url);//Download picture (download The path of the image can be cleared after processing is completed, but it is not processed here)
$res = new SimpleImage();//Image processing example
$res = $res->load($picfile);
$tmpfile = tempfile().'.jpg';//Create a path file to save the image
$width = '30';//Set the width of the image
$res->resizeToWidth($ width);
$res->save($tmpfile);//Save the processed image (without .jpg suffix)
//A total of 3 files are generated here, one is the downloaded image file , one is a temporary file, and the last one is a processed image file. The first two files need to be optimized and cleaned up.


function down($url)
{
$http = array();
$header = "http://f3.v.veimg.cn";
if ($header) {
                                                                                                                                     
$http['timeout'] = 50;

$ctx = stream_context_create(array(

'http' => $http,

));
$content = @file_get_contents($url, 0, $ctx);
sleep (1);

if (!$content) {

return false;

}

$tmpfile = tempfile();

file_put_contents($tmpfile, $content);

         return $tmpfile;

}


function tempfile()

{

    $path = dirname(__FILE__);
   $path .= '/spider/’ . date('Ymd') . '/'.date('His ').'-' . (int)(time() / 300);

if (!file_exists($path)) {

mkdir($path, 0777, true);

}

                                                                                                                                                                                                       

touch($file);


        return $file;
}

Image processing source code (official website address: http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/):

Copy code


The code is as follows:



/*
* File: SimpleImage.php
* Author: Simon Jarvis
* Copyright: 2006 Simon Jarvis
* Date: 08/11/06
* Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details:
* http://www.gnu.org/licenses/gpl.html
*
*/

class SimpleImage {

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

        if (!$this->image) {
            return false;
        }

        return $this;
    }

    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) {
        if ($this->getWidth() < $width) {
            $width = $this->getWidth();
        }
        $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 resize2($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;  
    }

}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/751937.htmlTechArticle使用方法示例: 设定宽度,等比例缩放 复制代码 代码如下: ?php include('SimpleImage.php'); $image = new SimpleImage(); $image-load('picture.jpg'); $image-resi...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn