首页 > php图像处理 > php生成缩略图类,支持自定义高和宽,还支持按高和宽截图

php生成缩略图类,支持自定义高和宽,还支持按高和宽截图

php生成缩略图类,支持自定义高和宽,还支持按高和宽截图,实例代码如下:

<?php   
class resizeimage   
{   
    //图片类型   
    var $type;   
    //实际宽度   
    var $width;   
    //实际高度   
    var $height;   
    //改变后的宽度   
    var $resize_width;   
    //改变后的高度   
    var $resize_height;   
    //是否裁图   
    var $cut;   
    //源图象   
    var $srcimg;   
    //目标图象地址   
    var $dstimg;   
    //临时创建的图象   
    var $im;   
    function resizeimage($img, $wid, $hei,$c,$dstpath)   
    {  
        $this->srcimg = $img;   
        $this->resize_width = $wid;   
        $this->resize_height = $hei;   
        $this->cut = $c;   
        //图片的类型  
 
$this->type = strtolower(substr(strrchr($this->srcimg,"."),1));   
        //初始化图象   
        $this->initi_img();   
        //目标图象地址   
        $this -> dst_img($dstpath);   
        //--   
        $this->width = imagesx($this->im);   
        $this->height = imagesy($this->im);   
        //生成图象   
        $this->newimg();   
        ImageDestroy ($this->im);   
    }   
    function newimg()   
    {   
        //改变后的图象的比例   
        $resize_ratio = ($this->resize_width)/($this->resize_height);   
        //实际图象的比例   
        $ratio = ($this->width)/($this->height);   
        if(($this->cut)=="1")   
        //裁图   
        {   
            if($ratio>=$resize_ratio)   
            //高度优先   
            {   
                $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);   
                imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height);   
                ImageJpeg ($newimg,$this->dstimg);   
            }   
            if($ratio<$resize_ratio)   
            //宽度优先   
            {   
                $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);   
                imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio));   
                ImageJpeg ($newimg,$this->dstimg);   
            }   
        }   
        else  
        //不裁图   
        {   
            if($ratio>=$resize_ratio)   
            {   
                $newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio);   
                imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height);   
                ImageJpeg ($newimg,$this->dstimg);   
            }   
            if($ratio<$resize_ratio)   
            {   
                $newimg = imagecreatetruecolor(($this->resize_height)*$ratio,$this->resize_height);   
                imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height);   
                ImageJpeg ($newimg,$this->dstimg);   
            }   
        }   
    }   
    //初始化图象   
    function initi_img()   
    {   
        if($this->type=="jpg")   
        {   
            $this->im = imagecreatefromjpeg($this->srcimg);   
        }   
        if($this->type=="gif")   
        {   
            $this->im = imagecreatefromgif($this->srcimg);   
        }   
        if($this->type=="png")   
        {   
            $this->im = imagecreatefrompng($this->srcimg);   
        }   
    }   
    //图象目标地址   
    function dst_img($dstpath)   
    {   
        $full_length  = strlen($this->srcimg);   
        $type_length  = strlen($this->type);   
        $name_length  = $full_length-$type_length;  
 
        $name         = substr($this->srcimg,0,$name_length-1);   
        $this->dstimg = $dstpath;  
 
//echo $this->dstimg;   
    }   
}  
 
$resizeimage = new resizeimage("11.jpg", "200", "150", "1","17.jpg");

               


本文地址:http://www.phprm.com/tuxiang/fs4428.html

转载随意,但请附上文章地址:-)

标签:php生成缩略图类 自定义高宽

相关文章

发表留言