php上传图片自动生成缩略图方法函数

$file_name='C:\AppServ\www\_MG_9888.jpg'; 
$file_new='C:\AppServ\www\bbbb.jpg';
scal_pic($file_name,$file_new);
function scal_pic($file_name,$file_new){
        //验证参数
        if(!is_string($file_name) || !is_string($file_new)){
                return false;
        }
        //获取图片信息
        $pic_scal_arr = @getimagesize($file_name);
        if(!$pic_scal_arr){
                return false;
        }
        //获取图象标识符
        $pic_creat = '';
        switch($pic_scal_arr['mime']){
                case 'image/jpeg':
                        $pic_creat = @imagecreatefromjpeg($file_name);
                        break;
                case 'image/gif':
                        $pic_creat = @imagecreatefromgif($file_name);
                        break;
                case 'image/png':
                        $pic_creat = @imagecreatefrompng($file_name);
                        break;
                case 'image/wbmp':
                        $pic_creat = @imagecreatefromwbmp($file_name);
                        break;
                default:
                        return false;
                        break;
        }
        if(!$pic_creat){
                return false;
        }
        //判断/计算压缩大小
        $max_width = 111;//最大宽度,象素,高度不限制
        $min_width = 15;
        $min_heigth = 20;
        if($pic_scal_arr[0]<$min_width || $pic_scal_arr[1]<$min_heigth){
                return false;
        }
        $re_scal = 0;
        if($pic_scal_arr[0]>$max_width){
                $re_scal = ($max_width / $pic_scal_arr[0]);
        }
        $re_width = round($pic_scal_arr[0] * $re_scal);
        $re_height = round($pic_scal_arr[1] * $re_scal);
        //创建空图象
        $new_pic = @imagecreatetruecolor($re_width,$re_height);
        if(!$new_pic){
                return false;
        }
        //复制图象
        if(!@imagecopyresampled($new_pic,$pic_creat,0,0,0,0,$re_width,$re_height,$pic_scal_arr[0],$pic_scal_arr[1])){
                return false;
        }
        //输出文件
        $out_file = '';
        switch($pic_scal_arr['mime']){
                case 'image/jpeg':
                        $out_file = @imagejpeg($new_pic,$file_new);
                        break;
                case 'image/jpg':
                        $out_file = @imagejpeg($new_pic,$file_new);
                        break;
                case 'image/gif':
                        $out_file = @imagegif($new_pic,$file_new);
                        break;
                case 'image/bmp':
                        $out_file = @imagebmp($new_pic,$file_new);
                        break;
                default:
                        return false;
                        break;
        }
        if($out_file){
                return true;
        }else{
                return false;
        }
 
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值