php 图片处理

来源:互联网 发布:js中基本数据类型 编辑:程序博客网 时间:2024/05/29 07:16
//合成图片(加水印)   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
原创粉丝点击