Heim > Backend-Entwicklung > PHP-Problem > Wie fügt Nginx über einen PHP-Proxy Wasserzeichen zu Bildern hinzu (detaillierter Code)?

Wie fügt Nginx über einen PHP-Proxy Wasserzeichen zu Bildern hinzu (detaillierter Code)?

WBOY
Freigeben: 2023-03-16 10:58:02
nach vorne
2263 Leute haben es durchsucht

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.

Wie fügt Nginx über einen PHP-Proxy Wasserzeichen zu Bildern hinzu (detaillierter Code)? (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;
}
Nach dem Login kopieren

/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 参数为访问的图片路径。

php 水印类

/** 水印类
 * 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: //其他格式
        }
    }
}
Nach dem Login kopieren

调用示例

public function watermark(){
    //图片路径前缀
    $image = '/data/img/' . input('url');
    self::imageMarking($image,'watermark.png');
    exit;
}
Nach dem Login kopieren

nginx 水平好的,可以试着用 http_image_filter_modulerrreee

Aufrufbeispiel

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

, 🎜PHP-Video-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!

Verwandte Etiketten:
php
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage