欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP實(shí)現(xiàn)圖片的等比縮放和Logo水印功能示例

 更新時間:2017年05月04日 11:33:49   作者:yhdsir  
這篇文章主要介紹了PHP實(shí)現(xiàn)圖片的等比縮放和Logo水印功能,結(jié)合實(shí)例形式分析了php圖片等比例縮放及l(fā)ogo水印添加操作技巧,需要的朋友可以參考下

本文實(shí)例講述了PHP實(shí)現(xiàn)圖片的等比縮放和Logo水印功能。分享給大家供大家參考,具體如下:

/**
 * 等比縮放函數(shù)(以保存的方式實(shí)現(xiàn))
 * @param string $picname 被縮放的處理圖片源
 * @param int $maxx 縮放后圖片的最大寬度
 * @param int $maxy 縮放后圖片的最大高度
 * @param string $pre 縮放后圖片名的前綴名
 * @return String 返回后的圖片名稱(帶路徑),如a.jpg=>s_a.jpg
 */
function imageUpdateSize($picname,$maxx=100,$maxy=100,$pre="s_"){
  $info = getimageSize($picname); //獲取圖片的基本信息
  $w = $info[0];//獲取寬度
  $h = $info[1];//獲取高度
  //獲取圖片的類型并為此創(chuàng)建對應(yīng)圖片資源
  switch($info[2]){
    case 1: //gif
      $im = imagecreatefromgif($picname);
      break;
    case 2: //jpg
      $im = imagecreatefromjpeg($picname);
      break;
    case 3: //png
      $im = imagecreatefrompng($picname);
      break;
    default:
      die("圖片類型錯誤!");
  }
  //計算縮放比例
  if(($maxx/$w)>($maxy/$h)){
    $b = $maxy/$h;
  }else{
    $b = $maxx/$w;
  }
  //計算出縮放后的尺寸
  $nw = floor($w*$b);
  $nh = floor($h*$b);
  //創(chuàng)建一個新的圖像源(目標(biāo)圖像)
  $nim = imagecreatetruecolor($nw,$nh);
  //執(zhí)行等比縮放
  imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h);
  //輸出圖像(根據(jù)源圖像的類型,輸出為對應(yīng)的類型)
  $picinfo = pathinfo($picname);//解析源圖像的名字和路徑信息
  $newpicname= $picinfo["dirname"]."/".$pre.$picinfo["basename"];
  switch($info[2]){
    case 1:
      imagegif($nim,$newpicname);
      break;
    case 2:
      imagejpeg($nim,$newpicname);
      break;
    case 3:
      imagepng($nim,$newpicname);
      break;
  }
  //釋放圖片資源
  imagedestroy($im);
  imagedestroy($nim);
  //返回結(jié)果
  return $newpicname;
}
//測試:
//echo imageUpdateSize("./images/bg.jpg",200,200,"ss_"); // ./images/s_bg.jpg

/**
 * 為一張圖片添加上一個logo圖片水?。ㄒ员4娴姆绞綄?shí)現(xiàn))
 * @param string $picname 被處理圖片源
 * @param string $logo 水印圖片
 * @param string $pre 處理后圖片名的前綴名
 * @return String 返回后的圖片名稱(帶路徑),如a.jpg=>n_a.jpg
 */
function imageUpdateLogo($picname,$logo,$pre="n_"){
  $picnameinfo = getimageSize($picname); //獲取圖片源的基本信息
  $logoinfo = getimageSize($logo); //獲取logo圖片的基本信息
  //var_dump($logoinfo);
  //根據(jù)圖片類型創(chuàng)建出對應(yīng)的圖片源
  switch($picnameinfo[2]){
    case 1: //gif
      $im = imagecreatefromgif($picname);
      break;
    case 2: //jpg
      $im = imagecreatefromjpeg($picname);
      break;
    case 3: //png
      $im = imagecreatefrompng($picname);
      break;
    default:
      die("圖片類型錯誤!");
  }
  //根據(jù)logo圖片類型創(chuàng)建出對應(yīng)的圖片源
  switch($logoinfo[2]){
    case 1: //gif
      $logoim = imagecreatefromgif($logo);
      break;
    case 2: //jpg
      $logoim = imagecreatefromjpeg($logo);
      break;
    case 3: //png
      $logoim = imagecreatefrompng($logo);
      break;
    default:
      die("logo圖片類型錯誤!");
  }
  //執(zhí)行圖片水印處理
  imagecopyresampled($im,$logoim,$picnameinfo[0]-$logoinfo[0],$picnameinfo[1]-$logoinfo[1],0,0,$logoinfo[0],$logoinfo[1],$logoinfo[0],$logoinfo[1]);
  //輸出圖像(根據(jù)源圖像的類型,輸出為對應(yīng)的類型)
  $picinfo = pathinfo($picname);//解析源圖像的名字和路徑信息
  $newpicname= $picinfo["dirname"]."/".$pre.$picinfo["basename"];
  switch($picnameinfo[2]){
    case 1:
      imagegif($im,$newpicname);
      break;
    case 2:
      imagejpeg($im,$newpicname);
      break;
    case 3:
      imagepng($im,$newpicname);
      break;
  }
  //釋放圖片資源
  imagedestroy($im);
  imagedestroy($logoim);
  //返回結(jié)果
  return $newpicname;
}
//測試
echo imageUpdateLogo("./images/bg2.jpg","./images/s_1.png");

PS:這里再為大家推薦幾款比較實(shí)用的圖片處理工具供大家參考使用:

在線圖片轉(zhuǎn)換BASE64工具:
http://tools.jb51.net/transcoding/img2base64

ICO圖標(biāo)在線生成工具:
http://tools.jb51.net/aideddesign/ico_img

在線Email郵箱圖標(biāo)制作工具:
http://tools.jb51.net/email/emaillogo

在線圖片格式轉(zhuǎn)換(jpg/bmp/gif/png)工具:
http://tools.jb51.net/aideddesign/picext

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

最新評論