Heim > php教程 > PHP源码 > Hauptteil

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

PHP中文网
Freigeben: 2016-05-25 17:05:55
Original
1258 Leute haben es durchsucht

支持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;;
        }
    }
}
?>
Nach dem Login kopieren

                   

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!