> 백엔드 개발 > PHP 문제 > nginx는 PHP 프록시를 통해 이미지에 워터마크를 추가하는 방법(자세한 코드)

nginx는 PHP 프록시를 통해 이미지에 워터마크를 추가하는 방법(자세한 코드)

WBOY
풀어 주다: 2023-03-16 10:58:02
앞으로
2309명이 탐색했습니다.

이 글에서는 nginx프록시를 통해 이미지에 워터마크를 추가하는 방법과 이를 호출하는 방법에 대한 관련 문제를 코드 예제를 통해 함께 살펴보겠습니다. 모든 사람에게 도움이 되기를 바랍니다.

nginx는 PHP 프록시를 통해 이미지에 워터마크를 추가하는 방법(자세한 코드) (권장 튜토리얼:

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

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: //其他格式
        }
    }
}
로그인 후 복사

调用示例

public function watermark(){
    //图片路径前缀
    $image = '/data/img/' . input('url');
    self::imageMarking($image,'watermark.png');
    exit;
}
로그인 후 복사

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

Call example

rrreeenginx 능숙하다면 http_image_filter_module 모듈을 사용해 워터마크를 추가해 볼 수도 있습니다. 나에게는 무력한 움직임( 추천 튜토리얼: nginx 튜토리얼

, 🎜PHP 비디오 튜토리얼🎜)🎜

위 내용은 nginx는 PHP 프록시를 통해 이미지에 워터마크를 추가하는 방법(자세한 코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿