本篇內(nèi)容主要講解“nginx如何通過PHP代理給圖片加水印”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“nginx如何通過PHP代理給圖片加水印”吧!
創(chuàng)新互聯(lián)是一家專業(yè)提供周寧企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、做網(wǎng)站、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為周寧眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
location ~ /image/.*\.(gif|jpg|jpeg|png)$ { proxy_pass http://127.0.0.1:8888/test/watermark?url=$request_uri; }
/img/
匹配要代理的目錄前綴,$request_uri
參數(shù)為訪問的圖片路徑。
/** 水印類 * Class Watermark * @package app\test */ class Watermark { /** 合成圖片水印 * @param string $dstImage 原圖片 * @param string $waterImg 水印圖 */ public static function imageMarking($dstImage, $waterImg){ //獲取圖片信息 $dstInfo = getimagesize($dstImage); $waterInfo = getimagesize($waterImg); //創(chuàng)建圖像 $dstImgObj = self::imageCreateFrom($dstImage, $dstInfo[2]); $waterImgObj = self::imageCreateFrom($waterImg, $waterInfo[2]); //合成水印 imagecopyresized($dstImgObj,$waterImgObj,0, 0,0,0,$dstInfo[0], $dstInfo[1],$waterInfo[0],$waterInfo[1]); //輸出圖片 self::imageOut($dstImgObj,$waterInfo[2]); //銷毀資源對象 imagedestroy($dstImgObj); imagedestroy($waterImgObj); } /** 生成圖片對象 * @param string $imgFile 圖片路徑 * @param string $type 圖片類型 * @return false|\GdImage|resource */ private static function imageCreateFrom($imgFile, $type) { switch ($type) { case IMAGETYPE_GIF: return imagecreatefromgif($imgFile); case IMAGETYPE_JPEG: return imagecreatefromjpeg($imgFile); case IMAGETYPE_PNG: return imagecreatefrompng($imgFile); default : //其他格式 } } /** 輸出圖片 * @param string $imageObj * @param string $type */ private static function imageOut($imageObj,$type){ switch ($type) { case 1: header("Content-Type: image/gif"); imagegif($imageObj); break; case 2: header("Content-Type: image/jpeg"); imagejpeg($imageObj); break; case 3: header("Content-Type: image/png"); imagepng($imageObj); break; default: //其他格式 } } }
public function watermark(){ //圖片路徑前綴 $image = '/data/img/' . input('url'); self::imageMarking($image,'watermark.png'); exit; }
到此,相信大家對“nginx如何通過PHP代理給圖片加水印”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!