這個的原理是把logo‘畫’圖片的指定位置.
步驟如下:
1.擷取圖片和logo的基本資料
getimagesize
2.判斷圖片資源類型並建立對應圖片資源
getPicType (自訂函數)
3.擷取logo的位置座標
getLocal (自訂函數)
4.把logo畫上去
imagecopyresampled
5.輸出映像
outputImage (自訂函數)
6.釋放圖片資源
imagedestroy
效果:
代碼如下:
/** * @function 向映像中添加logo * @param $picname * @param $logo * @param int $local logo添加的位置:1:左上方,2:右上方,3:左下角,4:右下角,5:中上,6:中間,7:中下 * @param string $pre * @return 返回一個新的圖片名 */functionaddLogo($picname,$logo,$local="1",$pre="l_"){$picInfo = getimagesize($picname); //擷取圖片的基本資料$logoInfo = getimagesize($logo); //擷取logo的基本資料$picW = $picInfo[0];//擷取pic寬度$picH = $picInfo[1];//擷取pic高度$logoW = $logoInfo[0]; //擷取logo寬度$logoH = $logoInfo[1]; //擷取logo高度//擷取圖片資源類型並建立對應圖片資源$picim = getPicType($picInfo[2],$picname); $logoim = getPicType($logoInfo[2],$logo); //把logo畫上去$XY = getLocal($local,$picW,$picH,$logoW,$logoH);//擷取logo的位置座標 imagecopyresampled($picim,$logoim,$XY[0],$XY[1],0,0,$logoW,$logoH,$logoW,$logoH); //輸出映像$newPicName = outputImage($picname,$pre,$picim); //釋放圖片資源 imagedestroy($picim); imagedestroy($logoim); return$newPicName;}/** * @function 擷取對應位置的左上方座標 * @param $local 位置 * @param $picW 圖片寬 * @param $picH 圖片高 * @param $logoW logo寬 * @param $logoH logo高 * @return 返回寬高數組 */functiongetLocal($local,$picW,$picH,$logoW,$logoH){$XY = array(); switch($local) { case1: $XY = array(0,0); break; case2: $XY = array($picW-$logoW,0); break; case3: $XY = array(0,$picH-$logoH); break; case4: $XY = array($picW-$logoW,$picH-$logoH); break; case5: $XY = array($picW/2 - $logoW/2,0); break; case6: $XY = array($picW/2 - $logoW/2,$picH/2 - $logoH/2); break; case7: $XY = array($picW/2 - $logoW/2,$picH-$logoH); break; default: die("不支援這個位置的logo添加"); break; } return$XY;}/** * function 判斷並返回圖片的類型(以資源方式返回) * @param int $type 圖片類型 * @param string $picname 圖片名字 * @return 返回對應圖片資源 */functiongetPicType($type,$picname){$im=null; switch($type) { case1: //GIF$im = imagecreatefromgif($picname); break; case2: //JPG$im = imagecreatefromjpeg($picname); break; case3: //PNG$im = imagecreatefrompng($picname); break; case4: //BMP$im = imagecreatefromwbmp($picname); break; default: die("不認識圖片類型"); break; } return$im;}/** * function 輸出映像 * @param string $picname 圖片名字 * @param string $pre 新圖片名首碼 * @param resourse $nim 要輸出的映像資源 * @return 返回新的圖片名 */functionoutputImage($picname,$pre,$nim){$info = getimagesize($picname); $picInfo = pathInfo($picname); $newPicName = $picInfo['dirname'].'/'.$pre.$picInfo['basename'];//輸出檔案的路徑switch($info[2]) { case1: imagegif($nim,$newPicName); break; case2: imagejpeg($nim,$newPicName); break; case3: imagepng($nim,$newPicName); break; case4: imagewbmp($nim,$newPicName); break; } return$newPicName;}
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
').text(i)); }; $numbering.fadeIn(1700); }); });
以上就介紹了 向圖片任意位置添加logo,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。