PHP圖片的等比縮放和增加Logo浮水印詳細代碼和注釋

來源:互聯網
上載者:User
百度 “美日匯”/** * 等比縮放函數(以儲存的方式實現) * @param string $picName 被縮放的處理圖片源 * @param int $maxx 縮放後圖片的最大寬度 * @param int $maxy 縮放後圖片的最大高度 * @param string $pre 縮放後圖片名的首碼名 * @return String 返回後的圖片名稱(帶路徑),如a.jpg=>s_a.jpg */function imageNewageUpdateSize($picName,$maxx=100,$maxy=100,$pre="s_"){$imageNewageInfo = getimageNewageSize($picName); //擷取圖片的基本資料$w = $imageNewageInfo[0];//擷取寬度$h = $imageNewageInfo[1];//擷取高度//擷取圖片的類型並為此建立對應圖片資源switch($imageNewageInfo[2]){case 1: //gif$imageNew = imageNewagecreatefromgif($picName);break;case 2: //jpg$imageNew = imageNewagecreatefromjpeg($picName);break;case 3: //png$imageNew = imageNewagecreatefrompng($picName);break;default:die("圖片類型錯誤!");}//計算縮放比例if(($maxx/$w)>($maxy/$h)){$b = $maxy/$h;}else{$b = $maxx/$w;}//計算出縮放後的尺寸$nw = floor($w*$b);$nh = floor($h*$b);//建立一個新的映像源(靶心圖表像)$nimageNew = imageNewagecreatetruecolor($nw,$nh);//執行等比縮放imageNewagecopyresampled($nimageNew,$imageNew,0,0,0,0,$nw,$nh,$w,$h);//輸出映像(根據源映像的類型,輸出為對應的類型)$picimageNewageInfo = pathimageNewageInfo($picName);//解析源映像的名字和路徑資訊$newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"];switch($imageNewageInfo[2]){case 1:imageNewagegif($nimageNew,$newpicName);break;case 2:imageNewagejpeg($nimageNew,$newpicName);break;case 3:imageNewagepng($nimageNew,$newpicName);break;}//釋放圖片資源imageNewagedestroy($imageNew);imageNewagedestroy($nimageNew);//返回結果return $newpicName;}//調用echo imageNewageUpdateSize("./imageNewages/leyangjun.jpg",400,400,"ss_");  //你自己要添加的圖片/** * 為一張圖片添加上一個logo圖片浮水印(以儲存的方式實現) * @param string $picName 被處理圖片源 * @param string $logo 浮水印圖片 * @param string $pre 處理後圖片名的首碼名 * @return String 返回後的圖片名稱(帶路徑),如a.jpg=>n_a.jpg */function imageNewageUpdateLogo($picName,$logo,$pre="n_"){$picNameimageNewageInfo = getimageNewageSize($picName); //擷取圖片源的基本資料$logoimageNewageInfo = getimageNewageSize($logo); //擷取logo圖片的基本資料//var_dump($logoimageNewageInfo);//根據圖片類型建立出對應的圖片源switch($picNameimageNewageInfo[2]){case 1: //gif$imageNew = imageNewagecreatefromgif($picName);break;case 2: //jpg$imageNew = imageNewagecreatefromjpeg($picName);break;case 3: //png$imageNew = imageNewagecreatefrompng($picName);break;default:die("圖片類型錯誤!");}//根據logo圖片類型建立出對應的圖片源switch($logoimageNewageInfo[2]){case 1: //gif$logoimageNew = imageNewagecreatefromgif($logo);break;case 2: //jpg$logoimageNew = imageNewagecreatefromjpeg($logo);break;case 3: //png$logoimageNew = imageNewagecreatefrompng($logo);break;default:die("logo圖片類型錯誤!");}//執行圖片浮水印處理                    源圖的高-logo圖的高       源圖的寬-logo圖的寬imageNewagecopyresampled($imageNew,$logoimageNew,$picNameimageNewageInfo[0]-$logoimageNewageInfo[0],$picNameimageNewageInfo[1]-$logoimageNewageInfo[1],0,0,$logoimageNewageInfo[0],$logoimageNewageInfo[1],$logoimageNewageInfo[0],$logoimageNewageInfo[1]);//輸出映像(根據源映像的類型,輸出為對應的類型)$picimageNewageInfo = pathimageNewageInfo($picName);//解析源映像的名字和路徑資訊$newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"];switch($picNameimageNewageInfo[2]){case 1:imageNewagegif($imageNew,$newpicName);break;case 2:imageNewagejpeg($imageNew,$newpicName);break;case 3:imageNewagepng($imageNew,$newpicName);break;}//釋放圖片資源imageNewagedestroy($imageNew);imageNewagedestroy($logoimageNew);//返回結果return $newpicName;}//測試//echo imageNewageUpdateLogo("./imageNewages/leyangjun.jpg","./imageNewages/logo.png");  //對應添加你的圖片,和你的logo浮水印圖片 OK
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.