Heim >Backend-Entwicklung >PHP-Problem >Wie fügt Nginx über einen PHP-Proxy Wasserzeichen zu Bildern hinzu (detaillierter Code)?
Dieser Artikel vermittelt Ihnen relevantes Wissen über das Hinzufügen von Wasserzeichen zu Bildern über PHPProxy sowie verwandte Probleme beim Aufrufen. Lassen Sie uns gemeinsam einen Blick darauf werfen. Ich hoffe, es wird für alle hilfreich sein.
(Empfohlene Tutorials:
nginx-Tutorial, PHP-Video-Tutorial) nginx-Konfigurations-Proxy
location ~ /image/.*\.(gif|jpg|jpeg|png)$ { proxy_pass http://127.0.0.1:8888/test/watermark?url=$request_uri; }
/img/
Passen Sie das Verzeichnispräfix an, das als Proxy verwendet werden soll, $ request_uri
Der Parameter ist der Bildpfad, auf den zugegriffen werden soll. php-Wasserzeichenklasse/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
Wenn Sie gut darin sind, können Sie versuchen, das Modul http_image_filter_module
zu verwenden, um Wasserzeichen hinzuzufügen ein hilfloser Schachzug für mich(Empfohlene Tutorials: Nginx-Tutorial
Das obige ist der detaillierte Inhalt vonWie fügt Nginx über einen PHP-Proxy Wasserzeichen zu Bildern hinzu (detaillierter Code)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!