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';
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chaojie2009

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值