PHP剪切图片(任意长宽)

来源:互联网 发布:淘宝店铺不能发布宝贝 编辑:程序博客网 时间:2024/06/11 21:14

仅附上关键代码,修改了Image.php中的cut方法,供各位参考

 /**     * 切割图片     +----------------------------------------------------------     * @static     * @access public     * @edit  by yangjs 20150721     +----------------------------------------------------------     * @param string $image  原图     * @param string $cutfile 切割后的图片     * @param int $cutWidth 要截取的宽度     * @param int $cutHeight 要截取的高度     +----------------------------------------------------------     * @return void     */    static function cut($image,$cutfile,$cutWidth='',$cutHeight=''){        $cutHeight = intval($cutHeight);        $cutWidth = intval($cutWidth);        $info  = Image::getImageInfo($image);        if($info){            if(empty($cutHeight)  && empty($cutWidth)){            //将原图拷贝一份                copy($image,$cutfile);                return true;            }            $srcWidth  = $info['width'];   //原始宽            $srcHeight = $info['height'];  //原始高            $ext = $info['type'];                        //原始宽高比            $oWHP = $srcWidth/$srcHeight;            //要截取的图的宽高比            $cWHP = $cutWidth/$cutHeight;            //获取缩放比例            if($oWHP > $cWHP){                //以为高为基准缩放                $sp = $cutHeight/$srcHeight;            }else{                //以宽为基准缩放                $sp = $cutWidth/$srcWidth;            }            $_s_x = ($srcWidth - $cutWidth/$sp) / 2 ;            $_s_y = ($srcHeight - $cutHeight/$sp) / 2;                                  $func   =   ($ext != 'jpg' && $ext !='jpeg') ? 'imagecreatefrom' . $ext : 'imagecreatefromjpeg';            $img_r  =   call_user_func($func,$image);            $dst_r  =   ImageCreateTrueColor( $cutWidth, $cutHeight );            $back   =   ImageColorAllocate( $dst_r, 255, 255, 255 );            //将dst_r着色            ImageFilledRectangle( $dst_r, 0, 0, $cutWidth, $cutHeight, $back );            ImageCopyResampled( $dst_r, $img_r, 0, 0, $_s_x,$_s_y, $srcWidth*$sp, $srcHeight*$sp, $srcWidth, $srcHeight );            ImagePNG($dst_r, $cutfile);              imagedestroy($dst_r);            imagedestroy($img_r);                   }else{            return false;        }    }


0 0
原创粉丝点击