首页 > 其他分享 >在图片上加二维码,并且添加文字

在图片上加二维码,并且添加文字

时间:2024-08-28 15:29:49浏览次数:3  
标签:qr 二维码 添加 background qrcode path 上加 png

        // 设置响应头,输出图片
//        header('Content-Type: image/png');
        $domain = $this->request->domain();
//        $public =public_path();
//        echo $domain.'/mask.png';die;
//        $res =file_get_contents("./background/mask.png");
//        var_dump($res);die;
        // 加载背景图片
        $background = imagecreatefrompng('./background/mask.png');
        // 分配颜色
        $textColor = imagecolorallocate($background, 255, 255, 255); // 白色
        // 设置字体路径和大小
        $fontPath =realpath('./background/pingfangsc-regular.otf');
        $fontSize = 40; // 字体大小
        $text = "巡检点名称:".$site_name;
        // 设置文本的位置
        $x = 370; // X 位置
        $y = 300; // Y 位置

// 添加文字到图像
        imagettftext($background, $fontSize, 0, $x, $y, $textColor, $fontPath, $text);
        $fontSize1 = 40; // 字体大小
        $text1 = "编号:".$site_code;
        // 设置文本的位置
        $x1 = 360; // X 位置
        $y1 = 1570; // Y 位置

        $textColors = imagecolorallocate($background, 51, 51, 51); //字体颜色 黑色
// 添加文字到图像
        imagettftext($background, $fontSize1, 0, $x1, $y1, $textColors, $fontPath, $text1);
        // 生成二维码(使用phpqrcode库)
        $qr_path = 'uploads/inspection/';
        if (!file_exists($qr_path)) {
            @mkdir($qr_path, 0777, true);
        }
        $qrcodeFile = $qr_path . 'qrcode.png';
        QRcode::png($site_url, $qrcodeFile, QR_ECLEVEL_L, 22,0);

        // 加载生成的二维码
        $qrcode = imagecreatefrompng($qrcodeFile);

        // 合并二维码到背景图
        $qrcodeX = 230; // 调整二维码的X位置
        $qrcodeY = 630; // 调整二维码的Y位置
        imagecopy($background, $qrcode, $qrcodeX, $qrcodeY, 0, 0, imagesx($qrcode), imagesy($qrcode));
        // 输出最终图像
        imagepng($background,$qr_path.$site_code_name.'.png');

        // 清理内存
        imagedestroy($background);
        imagedestroy($qrcode);
        return $domain."/".$qr_path.$site_code_name.'.png';

  

 

标签:qr,二维码,添加,background,qrcode,path,上加,png
From: https://www.cnblogs.com/kevin-yang123/p/18384744

相关文章

  • WPF 如何利用Blend给Button添加波纹效果
    先看一下效果吧:如果不会写动画或者懒得写动画,就直接交给Blend来做吧;其实Blend操作起来很简单,有点类似于在操作PS,我们只需要设置关键帧,鼠标点来点去就可以了,Blend会自动帮我们生成我们想要的动画效果.第一步:要创建一个空的WPF项目第二步:右键我们的项目,在最下方有一个,在Blend......
  • 超实用技巧!微信小程序圆码转换方形黑白二维码
    如今二维码在各行各业都被广泛应用,好多平台为了方便分享,都能把个人账号主页、发布的视频/文章、上架的商品等生成二维码,微信小程序自然也不例外。有些朋友因为二维码的应用场景比较复杂,就想把小程序的圆形二维码变成常规的方形二维码,这该咋整呢?其实很简单!我们把圆码变成二......
  • 记忆的力量:使用Langchain为AI助手添加持久记忆
    在使用Langchain构建智能对话系统时,记忆库的作用不可小觑。记忆库能够存储和管理对话历史,让AI在交流中更加连贯和个性化。通过Langchain的记忆库集成,我们可以轻松地将Redis等数据库作为后端存储,实现聊天消息的持久化。这样,无论用户何时返回,AI都能够回忆起之前的对话内容,提供更......
  • springboot+vue家教平台项目添加登录功能
    一.概述要为家教平台添加登录功能,建议先从后端开始,因为这样可以确保前端有一个明确的API进行交互,从而在开发前端时更容易进行调试和验证。后端开发:创建登录接口:在后端创建一个RESTfulAPI,用于处理用户登录请求。验证用户提交的登录号码和密码是否与数据库中的记录匹配......
  • mitk添加插件步骤
    一插件添加说明在MITK(MedicalImagingInteractionToolkit)中添加一个插件涉及多个步骤。以下是一个基本的指南,帮助你在MITK中添加插件:1.**设置开发环境**:  -确保已安装必要的开发工具,例如CMake和一个兼容的C++编译器。  -下载并构建MITK的源代码。这通......
  • 一次性下发100w的优惠券/短信/二维码,兼顾线程池参数可配置 在Spring 中 ThreadPoolTas
    一次性下发100w的优惠券/短信/二维码,兼顾线程池参数可配置在Spring中ThreadPoolTaskExecutor的使用1、场景需求分析针对6.18,11.11这种场景,平台一次性发布500w张优惠券,或者对于锁单用户统一发下100w张确认信息,同时我们平时有抢购茅台的场景,京东一次性发布10w个验证码,主要是针......
  • vue element-ui表格table 表格动态 添加行、删除行、添加列、删除列 自定义表头
         vuetable表格动态添加行、删除行、添加列、删除列自定义表头; 增加一行、删除一行、添加一列、删除一列;每行带输入框input代码1、HTML部分:<template><divclass="app-container"><el-table:data="tableData"borderstyle="width:600px;margin-to......
  • 揭秘Python中的二维码魔术师:qrcode库的魔法
    文章目录揭秘Python中的二维码魔术师:qrcode库的魔法背景:为什么选择qrcode库?库简介:qrcode是什么?安装指南:如何将qrcode库纳入你的Python环境?快速入门:5个简单函数的使用方法1.生成基本二维码2.生成带有Logo的二维码3.生成彩色二维码4.自定义二维码大小5.生成二维码并直......
  • FastAdmin前端开发——词条生成二维码
    一、前端开发基础文件序号文件路径功能1application/index/controller控制器文件2application/index/lang/zh-cn语言包3application/index/model模型文件4application/index/view/common/sidenav.html左侧菜单栏5application/index/view/index.html右侧列表视图6application/i......
  • 尚品汇-添加购物车实现(三十六)
    目录:(1)购物车业务简介(2)购物车模块搭建(3)搭建service-cart服务(4)功能—添加入购物车(5)添加购物车功能开发(1)购物车业务简介购物车模块要能够存储顾客所选的的商品,记录下所选商品,还要能随时更新,当用户决定购买时,用户可以选择决定购买的商品进入结算页面。 功能要求:利用缓......