php 图片处理

//合成图片(加水印)
   function img_water_mark($srcImg, $waterImg, $savename, $savepath='public/images/wxqrcode', $positon=3, $alpha=100)  
{  
	//$savename=time().'.jpg';
    $temp = pathinfo($srcImg);  
    $name = $temp['basename'];  
    $path = $temp['dirname'];  
    $exte = $temp['extension'];  
    $savename = $savename ? $savename : $name;  
    $savepath = $savepath ? $savepath : $path;  
    $savefile = $savepath .'/'. $savename;  
    $srcinfo = @getimagesize($srcImg);  
    if (!$srcinfo) {  
        return -1;  //原文件不存在  
    }  
    $waterinfo = @getimagesize($waterImg);  
    if (!$waterinfo) {  
        return -2;  //水印图片不存在  
    }  
    $srcImgObj = image_create_from_ext($srcImg);  
    if (!$srcImgObj) {  
        return -3;  //原文件图像对象建立失败  
    }  
    $waterImgObj = image_create_from_ext($waterImg);  
    if (!$waterImgObj) {  
        return -4;  //水印文件图像对象建立失败  
    }  
    switch ($positon) {  
    //1顶部居左  
    case 1: $x=$y=0; break;  
    //2顶部居右  
    case 2: $x = $srcinfo[0]-$waterinfo[0]; $y = 0; break;  
    //3居中  
    case 3: $x = ($srcinfo[0]-$waterinfo[0])/2; $y = ($srcinfo[1]-$waterinfo[1])/2; break;  
    //4底部居左  
    case 4: $x = 0; $y = $srcinfo[1]-$waterinfo[1]; break;  
    //5底部居右  
    case 5: $x = $srcinfo[0]-$waterinfo[0]; $y = $srcinfo[1]-$waterinfo[1]; break;  
    default: $x=$y=0;  
    }  
    imagecopymerge($srcImgObj, $waterImgObj, $x, $y, 0, 0, $waterinfo[0], $waterinfo[1], $alpha);  
    switch ($srcinfo[2]) {  
    case 1: imagegif($srcImgObj, $savefile); break;  
    case 2: imagejpeg($srcImgObj, $savefile); break;  
    case 3: imagepng($srcImgObj, $savefile); break;  
    default: return -5;  //保存失败  
    }  
    imagedestroy($srcImgObj);  
    imagedestroy($waterImgObj);  
    return $savefile;  
} 
//创建图片
function image_create_from_ext($imgfile)  
{  
    $info = getimagesize($imgfile);  
    $im = null;  
    switch ($info[2]) {  
    case 1: $im=imagecreatefromgif($imgfile); break;  
    case 2: $im=imagecreatefromjpeg($imgfile); break;  
    case 3: $im=imagecreatefrompng($imgfile); break;  
    }  
    return $im;  
} 
//创建大小

function imagesize($pathimg){
    //图片的等比缩放
    
    //因为PHP只能对资源进行操作,所以要对需要进行缩放的图片进行拷贝,创建为新的资源
    $src=imagecreatefromjpeg($pathimg);
    
    //取得源图片的宽度和高度
    $size_src=getimagesize($pathimg);
    $w=$size_src['0'];
    $h=$size_src['1'];
    
    //指定缩放出来的最大的宽度(也有可能是高度)
    $max=150;
    
    //根据最大值为300,算出另一个边的长度,得到缩放后的图片宽度和高度
    if($w > $h){
        $w=$max;
        $h=$h*($max/$size_src['0']);
    }else{
        $h=$max;
        $w=$w*($max/$size_src['1']);
    }
    
    
    //声明一个$w宽,$h高的真彩图片资源
    $image=imagecreatetruecolor($w, $h);
    
    
    //关键函数,参数(目标资源,源,目标资源的开始坐标x,y, 源资源的开始坐标x,y,目标资源的宽高w,h,源资源的宽高w,h)
    imagecopyresampled($image, $src, 0, 0, 0, 0, $w, $h, $size_src['0'], $size_src['1']);
    
    //告诉浏览器以图片形式解析
   // header('content-type:image/png');
   // imagepng($image);

   $timestamp = time();
   imagejpeg($image, "$timestamp.jpg"); 
    
    //销毁资源
    imagedestroy($image);
	return $timestamp.'.jpg';
    
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。