前期准备:
1.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/
2.PHP环境必须开启支持GD2扩展库支持(一般情况下都是开启状态)

    /**

  1.      * 生成二维码图片(可生成带logo的二维码)
  2.      *
  3.      * @param string $data 二维码内容
  4.      *         示例数据:weixin://wxpay/bizpayurl?pr=0tELnh9
  5.      * @param string $saveDir 保存路径名(示例:Qrcode)
  6.      * @param string $logo 图片logo路径
  7.      *         示例数据:./Public/Default/logo.jpg
  8.      *         注意事项:1、前面记得带点(.);2、建议图片Logo正方形,且为jpg格式图片;3、图片大小建议为xx*xx
  9.      * 
  10.      * 注意:一般用于生成带logo的二维码
  11.      * 
  12.      * @return
  13.      */
  14.     public function createQrcode($data,$saveDir="Qrcode",$logo = "")
  15.     {
  16.         $rootPath = C("IMAGE_ROOT_PATH");
  17.         $path = $saveDir.'/'.date("Y-m-d").'/';
  18.         $fileName = uniqid();
  19.         if (!is_dir($rootPath.$path))
  20.         {
  21.             mkdir($rootPath.$path,0777,true);
  22.         }
  23.         $originalUrl = $path.$fileName.'.png';
  24.         
  25.         Vendor('phpqrcode.phpqrcode');
  26.         $object = new \QRcode();
  27.         $errorCorrectionLevel = 'L';    //容错级别
  28.         $matrixPointSize = 20;            //生成图片大小(这个值可以通过参数传进来判断)
  29.         $object->png($data,$rootPath.$originalUrl,$errorCorrectionLevel, $matrixPointSize, 2);
  30.         
  31.         //判断是否生成带logo的二维码
  32.         if(file_exists($logo))
  33.         {
  34.             $QR = imagecreatefromstring(file_get_contents($rootPath.$originalUrl));        //目标图象连接资源。
  35.             $logo = imagecreatefromstring(file_get_contents($logo));    //源图象连接资源。
  36.             
  37.             $QR_width = imagesx($QR);            //二维码图片宽度
  38.             $QR_height = imagesy($QR);            //二维码图片高度
  39.             $logo_width = imagesx($logo);        //logo图片宽度
  40.             $logo_height = imagesy($logo);        //logo图片高度
  41.             $logo_qr_width = $QR_width / 4;       //组合之后logo的宽度(占二维码的1/5)
  42.             $scale = $logo_width/$logo_qr_width;       //logo的宽度缩放比(本身宽度/组合后的宽度)
  43.             $logo_qr_height = $logo_height/$scale;  //组合之后logo的高度
  44.             $from_width = ($QR_width - $logo_qr_width) / 2;   //组合之后logo左上角所在坐标点
  45.             
  46.             //重新组合图片并调整大小
  47.             //imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中
  48.             imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);
  49.             
  50.             //输出图片
  51.             imagepng($QR, $rootPath.$originalUrl);
  52.             imagedestroy($QR);
  53.             imagedestroy($logo);
  54.         }
  55.         
  56.         $result['errcode'] = 0;
  57.         $result['errmsg'] = 'ok';
  58.         $result['data'] = $originalUrl;
  59.         return $result;
  60.     
  61.     }
  62.     
  63.     /**
  64.      * 生成临时二维码图片
  65.      * 这里返回的是base64进制图片
  66.      * 一般用于微信扫码支付二维码生成场景
  67.      *
  68.      * @param string $data 二维码内容
  69.      *         示例数据:http://www.tf4.cn或weixin://wxpay/bizpayurl?pr=0tELnh9
  70.      *
  71.      * @return
  72.      */
  73.     public function createTempQrcode($data)
  74.     {
  75.         Vendor('phpqrcode.phpqrcode');
  76.         $object = new \QRcode();
  77.         $errorCorrectionLevel = 'L';    //容错级别
  78.         $matrixPointSize = 5;            //生成图片大小
  79.         
  80.         //打开缓冲区
  81.         ob_start();
  82.         //生成二维码图片
  83.         $returnData = $object->png($data,false,$errorCorrectionLevel, $matrixPointSize, 2);
  84.         //这里就是把生成的图片流从缓冲区保存到内存对象上,使用base64_encode变成编码字符串,通过json返回给页面。
  85.         $imageString = base64_encode(ob_get_contents());
  86.         //关闭缓冲区
  87.         ob_end_clean();
  88.         $base64 = "data:image/png;base64,".$imageString;
  89.         
  90.         $result['errcode'] = 0;
  91.         $result['errmsg'] = 'ok';
  92.         $result['data'] = $base64;
  93.         return $result;
  94.     }
//生成海报把图片 $originalUrl 放到背景海报$timg1上
$timg1='./timg.jpg';$timg= imagecreatefromstring(file_get_contents($timg1));        //目标图象连接资源。
$originalUrl = imagecreatefromstring(file_get_contents($originalUrl));    //源图象连接资源。$QR_width1 = imagesx($timg);            //背景海报图片宽度$QR_height1 = imagesy($timg);            //背景海报图片高度$logo_width1 = imagesx($originalUrl);        //logo图片宽度$logo_height1 = imagesy($originalUrl);        //logo图片高度$logo_qr_width1 = $QR_width1/ 4;       //组合之后logo的宽度(占二维码的1/5)$scale1 = $logo_width1/$logo_qr_width1;       //logo的宽度缩放比(本身宽度/组合后的宽度)$logo_qr_height1 = $logo_height1/$scale1;  //组合之后logo的高度$from_width1 = ($QR_width1 - $logo_qr_width1)/4 ;   //组合之后logo左上角所在坐标点//重新组合图片并调整大小//imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中imagecopyresampled($timg, $originalUrl, $from_width1, $from_width1, 0, 0, $logo_qr_width1,$logo_qr_height1, $logo_width1, $logo_height1);//输出图片imagepng($timg,'./'.rand(1,100).'.jpg');
//$pic='./'.rand(1,100).'.jpg';//'生成后的图片重命名地址'
//imagepng($timg,$pic);

thinkphp用phpqrcode生成二维码(含中间带logo、临时二维码)或生成微信二维码海报的方法相关推荐

  1. 支付二维码php能实现吗_(实用篇)微信支付扫码支付php版

    include'ArrayToXML.php'; header('Content-Type:text/xml');/*** * 该脚本为当公众该平台接到Native(原生)支付请求时,会调用此回调UR ...

  2. PHP给微信二维码 添加背景和昵称 ,微信带参数海报跨坑记录。

    先获取微信二维码,这里我获取的是永久二维码: $wx= $this->getTicket($this->userid);//我带的参数是用户ID,可自由发挥.//下面是相关函数 funct ...

  3. 通过编程做特别效果的个性“微信”二维码(思路)

    注,这里只说编程思路,没有源代码. 先看效果: 图1 灯笼效果的二维码 从上图可以看到,其特征是:(1)整个外形为灯笼:(2)内部填充为二维码图像:(3)中间核心区域为我们真正所要的二维码:(4)二维 ...

  4. 通过编程做特别效果的个性 微信 二维码(思路)

    注,这里只说编程思路,没有源代码. 先看效果: 图1 灯笼效果的二维码 从上图可以看到,其特征是:(1)整个外形为灯笼:(2)内部填充为二维码图像:(3)中间核心区域为我们真正所要的二维码:(4)二维 ...

  5. 【深度学习】【caffe】【python】【docker】微信 二维码检测,手写数字识别

    文章目录 介绍 docker环境 MNIST 数据(废弃) 微信二维码 微信二维码 python代码试试 用于造yolov5的目标检测数据 了解caffe,使用caffe,做个小例子熟悉caffe. ...

  6. python将微信二维码转化为炫酷二维码

    第一步:将你的微信二维码保存下来. 第二步:打开草料二维码,在更多工具里找到上传二维码. 第三步:将你的二维码上传,会返回给你一个URL链接,复制下来. 第四步:WIN+R打开命令提示符,输入 pip ...

  7. 将0.1101101*2^(-10)表示成阶码用4位移码、尾数用8位原码(含符号位)的浮点数

    0.1101101 * 2^(-10) 表示成阶码用4位移码.尾数用8位原码(含符号位)的浮点数是: 符号位:0 阶码(4位移码):0111 尾数(8位原码):11011010 所以,0.110110 ...

  8. Android 接入微信扫码库,实现堪比微信的扫码效果

    对于Android的扫码库,我们平时都会使用ZXing或者ZBar来实现. 但是实际情况是,对于一些环境恶劣的情况下,比如 眩光.昏暗.有污渍等情况下,很难被识别. 即使是在普通情况下,扫码的识别速度 ...

  9. thinkphp使用phpqrcode类生成二维码

    phpqrcode类文件下载 下载地址:https://sourceforge.net/projects/phpqrcode/ PHP环境必须开启支持GD2扩展库支持(一般情况下都是开启状态) 具体使 ...

最新文章

  1. Nginx 配置中一个不起眼字符 “/“ 的巨大作用
  2. php ×××号码效验码生成函数
  3. html缩进快捷键_HTML 入门笔记
  4. AI:人工智能实践六大场景(金融信用违约、反欺诈模型、客户偏好洞察、智能推荐、精准营销、客户流失管理)及其对应常用机器学习算法经验总结(不断更新)
  5. [转载]详细解说STL排序(sort)------这篇博文在一道题上救了我o_0
  6. 箭头标线的类型和面积
  7. PowerDesigner版本控制器设置权限
  8. 运维在浏览器搜索linux日志,Graylog日志管理系统---搜索查询方法使用简介
  9. Mac Vmware Fusion在虚拟机中共享文件夹
  10. FreeSWITCH的NAT穿越
  11. 【NodeJs】用WebStorm创建Express项目时出现:express version is unavailable
  12. 高效查询ECS可用资源的实践
  13. python版使用tinypng压缩图片大小
  14. 哇嘎显示等待无服务器,vagaa 哇嘎搜索不了资源怎么破?vagaa 哇嘎无法搜索的原因分析和解决方法介绍...
  15. abb机器人指令手册_ABB机器人加速度设置
  16. Maven环境变量配置不成功
  17. github上传代码全部流程
  18. 杰出人物的四大法宝——与成功学大师对话
  19. 2015数据泄露调查报告
  20. html表格怎么用css渲染,css样式如何渲染?

热门文章

  1. c语言编程文本文件的写入,c语言 文本文件的操作 字符写入
  2. 阿里云5m带宽能支持多少人访问_阿里云618年中大促:云服务器低至7.65元/月 可选购3年版免续费之忧...
  3. div+css静态网页设计web网页设计实例作业 ——中国风的茶文化(4页) web课程设计-HTML网页制作代码
  4. kafka 修改分区_kafka的分区数设置
  5. 抖音短视频数据抓取实战系列(〇)——前言
  6. Linux下安装ORACLE(一周成果、全是干货!)
  7. 计算机网络知识点总结(第四章 网络层)
  8. 电流型和电压模拟量信号有何区别,如何互相转换
  9. Commonsense and Named Entity Aware Knowledge Grounded Dialogue Generation
  10. 文字折叠特效 html+css