php 圖片處理

來源:互聯網
上載者:User

標籤:

//合成圖片(加浮水印)   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';    }

php 圖片處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.