向圖片任意位置添加logo

來源:互聯網
上載者:User
這個的原理是把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教程有興趣的朋友有所協助。

  • 聯繫我們

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