Heim  >  Artikel  >  php教程  >  PHP按最大宽高等比例缩放图片类

PHP按最大宽高等比例缩放图片类

PHP中文网
PHP中文网Original
2016-05-25 17:05:551247Durchsuche

支持jpg、png、gif格式

<?php
class slpic {
    //原图片文件,包含路径和文件名
    var $orpic; 
    //原图的临时图像
    var $tempic;
    //缩略图
    var $thpic;
    //原宽度
    var $width; 
    //原高度
    var $height;
    //图片类型
    var $type;
    //缩略后的宽度
    var $thwidth;
    //缩略后的高度
    var $thheight;
     
    function __construct($file){
        $this->orpic = $file;
        $infos = getimagesize($file);
        $this->width = $infos[0];
        $this->height = $infos[1];
        $this->type = $infos[2];
    }
     
    //根据用户所指定最大宽高来计算缩略图尺寸
    function cal_size($maxwidth, $maxheight){
        //缩略图最大宽度与最大高度比
        $thcrown = $maxwidth/$maxheight;    
        //原图宽高比
        $crown = $this->width/$this->height;    
        if($crown/$thcrown >= 1){
            $this->thwidth = $maxwidth;
            $this->thheight = $maxwidth/$crown;
        } else {
            $this->thheight = $maxheight;
            $this->thwidth = $maxheight*$crown;
        }
    }
     
    function init(){
        switch($this->type){
            case 1:     //GIF
                $this->tempic = imagecreatefromgif($this->orpic);
                break;
            case 2:     //JPG
                $this->tempic = imagecreatefromjpeg($this->orpic);
                break;
            case 3:     //PNG
                $this->tempic = imagecreatefrompng($this->orpic);
                break;
            default:
                echo &#39;暂不支持该图片格式&#39;;
        }
    }
 
    function resize($maxwidth, $maxheight){
        //初始化图像
        $this->init();
        //计算出缩略图尺寸
        $this->cal_size($maxwidth, $maxheight);
         
        $this->thpic = imagecreatetruecolor($this->thwidth, $this->thheight);
        imagecopyresampled($this->thpic, $this->tempic, 0, 0, 0 ,0, $this->thwidth, $this->thheight, $this->width, $this->height);
    }
     
    function save($filename, $type){
        switch($type){
            case &#39;jpg&#39;:
            case &#39;jpeg&#39;:
                imagejpeg($this->thpic, $filename);
                break;
            case &#39;png&#39;:
                imagepng($$this->thpic, $filename);
                break;
            case &#39;gif&#39;:
                imagegif($$this->thpic, $filename);
                break;
            default:
                echo &#39;暂不支持您所选择的格式&#39;;
        }
    }
}
?>

                   

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn