nginx如何通过PHP代理给图片加水印

发布时间 - 2023-05-29 00:00:00    点击率:

nginx 配置代理

location ~ /image/.*\.(gif|jpg|jpeg|png)$ {
    proxy_pass http://127.0.0.1:8888/test/watermark?url=$request_uri;
}

/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;
}


# php  # nginx  # Watermark  # Class  # package  # param  # app  # url 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在阿里云完成域名注册与建站?  如何用已有域名快速搭建网站?  如何为不同团队 ID 动态生成多个“认领值班”按钮  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  如何在云主机上快速搭建网站?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何确保FTP站点访问权限与数据传输安全?  Laravel如何实现文件上传和存储?(本地与S3配置)  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  使用C语言编写圣诞表白程序  深圳网站制作的公司有哪些,dido官方网站?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  如何快速选择适合个人网站的云服务器配置?  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  JavaScript如何实现错误处理_try...catch如何捕获异常?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  如何在阿里云ECS服务器部署织梦CMS网站?  如何快速生成可下载的建站源码工具?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  利用JavaScript实现拖拽改变元素大小  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何获取上海专业网站定制建站电话?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  js实现点击每个li节点,都弹出其文本值及修改  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Linux安全能力提升路径_长期防护思维说明【指导】  什么是javascript作用域_全局和局部作用域有什么区别?  如何快速查询网站的真实建站时间?  JavaScript模板引擎Template.js使用详解  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Java遍历集合的三种方式  Linux网络带宽限制_tc配置实践解析【教程】  如何用5美元大硬盘VPS安全高效搭建个人网站?  网站建设要注意的标准 促进网站用户好感度!  Laravel如何集成Inertia.js与Vue/React?(安装配置)  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?