이 글에서는 nginx프록시를 통해 이미지에 워터마크를 추가하는 방법과 이를 호출하는 방법에 대한 관련 문제를 코드 예제를 통해 함께 살펴보겠습니다. 모든 사람에게 도움이 되기를 바랍니다.
(권장 튜토리얼:
nginx 튜토리얼, PHP 비디오 튜토리얼) nginx 구성 프록시
location ~ /image/.*\.(gif|jpg|jpeg|png)$ { proxy_pass http://127.0.0.1:8888/test/watermark?url=$request_uri; }
/img/
프록시할 디렉터리 접두사 일치, $ request_uri
매개변수는 액세스할 이미지 경로입니다. php 워터마크 클래스/img/
匹配要代理的目录前缀,$request_uri
参数为访问的图片路径。
/** 水印类 * 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); //创建图像 $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
水平好的,可以试着用 http_image_filter_module
rrreee
rrreeenginx
능숙하다면 http_image_filter_module
모듈을 사용해 워터마크를 추가해 볼 수도 있습니다. 나에게는 무력한 움직임( 추천 튜토리얼: nginx 튜토리얼
위 내용은 nginx는 PHP 프록시를 통해 이미지에 워터마크를 추가하는 방법(자세한 코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!