阿里云搞活动,想要抓紧买

用thinkphp生成带二维码的海报功能。
准备:公众号二维码图片一张

背景图片一张

将二维码和背景图片合成的方法,可添加到common/common/function.php

function getbgqrcode($imageDefault,$textDefault,$background,$filename="",$config=array()){//如果要看报什么错,可以先注释调这个headerif(empty($filename)) header("content-type: image/png");//背景方法$backgroundInfo = getimagesize($background);$ext = image_type_to_extension($backgroundInfo[2], false);$backgroundFun = 'imagecreatefrom'.$ext;$background = $backgroundFun($background);$backgroundWidth = imagesx($background);  //背景宽度$backgroundHeight = imagesy($background);  //背景高度$imageRes = imageCreatetruecolor($backgroundWidth,$backgroundHeight);$color = imagecolorallocate($imageRes, 0, 0, 0);imagefill($imageRes, 0, 0, $color);imagecopyresampled($imageRes,$background,0,0,0,0,imagesx($background),imagesy($background),imagesx($background),imagesy($background));//处理了图片if(!empty($config['image'])){foreach ($config['image'] as $key => $val) {$val = array_merge($imageDefault,$val);$info = getimagesize($val['url']);$function = 'imagecreatefrom'.image_type_to_extension($info[2], false);if($val['stream']){   //如果传的是字符串图像流$info = getimagesizefromstring($val['url']);$function = 'imagecreatefromstring';}$res = $function($val['url']);$resWidth = $info[0];$resHeight = $info[1];//建立画板 ,缩放图片至指定尺寸$canvas=imagecreatetruecolor($val['width'], $val['height']);imagefill($canvas, 0, 0, $color);//关键函数,参数(目标资源,源,目标资源的开始坐标x,y, 源资源的开始坐标x,y,目标资源的宽高w,h,源资源的宽高w,h)imagecopyresampled($canvas, $res, 0, 0, 0, 0, $val['width'], $val['height'],$resWidth,$resHeight);$val['left'] = $val['left']<0?$backgroundWidth- abs($val['left']) - $val['width']:$val['left'];$val['top'] = $val['top']<0?$backgroundHeight- abs($val['top']) - $val['height']:$val['top'];//放置图像imagecopymerge($imageRes,$canvas, $val['left'],$val['top'],$val['right'],$val['bottom'],$val['width'],$val['height'],$val['opacity']);//左,上,右,下,宽度,高度,透明度}}//处理文字if(!empty($config['text'])){foreach ($config['text'] as $key => $val) {$val = array_merge($textDefault,$val);list($R,$G,$B) = explode(',', $val['fontColor']);$fontColor = imagecolorallocate($imageRes, $R, $G, $B);$val['left'] = $val['left']<0?$backgroundWidth- abs($val['left']):$val['left'];$val['top'] = $val['top']<0?$backgroundHeight- abs($val['top']):$val['top'];imagettftext($imageRes,$val['fontSize'],$val['angle'],$val['left'],$val['top'],$fontColor,$val['fontPath'],$val['text']);}}//生成图片if(!empty($filename)){$res = imagejpeg ($imageRes,$filename,90); //保存到本地imagedestroy($imageRes);}else{imagejpeg ($imageRes);     //在浏览器上显示imagedestroy($imageRes);}
}

控制器方法

public function index(){$imageDefault = array('left'=>435,'top'=>1268,'right'=>0,'bottom'=>0,'width'=>245,'height'=>245,'opacity'=>100);$textDefault = array('text'=>'','left'=>0,'top'=>0,'fontSize'=>32,       //字号'fontColor'=>'255,255,255', //字体颜色'angle'=>0,);$background = 'Public/images/bg.png';//海报最底层得背景$config['image'][]['url'] = 'Uploads/images/qrcode.jpg';$filename = 'Uploads/images/qrcode_bg.jpg';getbgqrcode($imageDefault,$textDefault,$background,$filename,$config);echo "<center><img src='".$filename."' width='400'/></center>";}

最终效果:

稍后我会将所有文件上传到ThinkPHP技术交流群群文件中,有兴趣的同学可以到群文件中下载
QQ群:282882201
可关注我的公众号,平时工作中遇到的技术问题,会整理后发到公众号上

阿里云搞活动,想要抓紧买

thinkphp生成带二维码的海报相关推荐

  1. js 通过canvas生成带二维码的海报图

    前言 h5移动端生成海报图,可长按图片保存或发送给朋友,或长按识别二维码.两种场景:第一种是生成项目分享海报图,通过背景图和地址生成的二维码合成一张海报图:第二种是通过页面生成商品海报图,页面有产品介 ...

  2. tp3.2生成带二维码的海报

    public function haibaoOld()     {         $id   = I( 'get.id' );         $type = I( 'get.type' );   ...

  3. 前端Vue H5生成带二维码的分享海报,实现长按保存到手机相册

    前端Vue H5生成带二维码的分享海报,实现长按保存到手机相册 前言:关于H5分享海报的需求,经常会遇到,通常就是一个分享的二维码+分享文案,生成一张图片,供用户在手机上长按保存到手机,然后就可以将保 ...

  4. PHP生成带二维码的分享图片

    综述 项目开发中需求,要求在APP中进行分享的时候可以分享图片,图片由美工进行设计,其上带有二维码,分享给别人可以直接长按图片进行识别.这种方式在分享中用户体验更好,首先图片由美工设计很好看,其次这种 ...

  5. jquery.qrcode生成带logo的二维码,同时生成带二维码的好友分享图片(js与canvas实现二维码和图片合成的海报)

    首先给大家看一下效果图(纯jQuery前端技术): 提供一下demo 源代码和jquery.qrcode文件下载: https://download.csdn.net/download/qq15577 ...

  6. 怎么用python生成带二维码的照片_怎么制作二维码图片-Python 生成个性二维码

    一.实验介绍1.1 实验内容 本课程通过调用MyQR接口来实现生成个人所需二维码,并可以设置二维码的大小.是否在现有图片的基础上生成.是否生成动态二维码. 1.2 知识点 Python3基础 MyQR ...

  7. vue 制作带二维码的海报并下载 。 (html2canvas转为图片不显示文字的方法)

    效果图如上 1.安装依赖 npm install qrcode (生成二维码) html2canvas (截取html元素生成图片) (引入依赖) import qrcode from "q ...

  8. thinkphp 添加图片 文字 水印生成带二维码的小程序推广海报

    $image = new \Think\Image();                 $bgm='./Public/haibao.png'; //背景图                 $post ...

  9. thinkphp 添加图片 文字 水印生成带二维码的小程序推广海报

    $image = new \Think\Image(); $bgm='./Public/haibao.png'; //背景图 poster="./Public/poster/poster=& ...

最新文章

  1. Java中获取 List中最后一个元素
  2. mysql关于or的索引问题
  3. win2008 mysql端口_Win7系统下SqlServer 2008修改IP端口的方法
  4. [复习]莫比乌斯反演,杜教筛,min_25筛
  5. OJ1043: 最大值(C语言)
  6. 教你些技巧,用 Python 自动化办公做一些有趣的事情 太方便了
  7. 熊猫猪新系统測试之二:Mac OS X 10.10 优胜美地
  8. 海康/大华实现web直播和回放,也可以直接对接摄像头
  9. 【AD10】Altium Designer 10导入元件库图文教程
  10. 访问控制模型(ACL BLP BiBA Clark-Wilson Chinese-wall RBAC ABAC)
  11. 通过调用rundll32.exe来打开一些系统特定文件
  12. 表单项 —【input的required属性】
  13. Linux 查看与修改mtu值
  14. 司凤阻止鸿蒙熔炉,《琉璃》大结局成喜剧,天帝向计都安利儿子司凤,嘴炮换三界安宁...
  15. Vue 组件封装之 ScrollView 上拉加载更多
  16. 【附源码】Python计算机毕业设计人脸识别考勤系统
  17. Spark安装-环境搭建
  18. js实现图片上传功能,后台为Java
  19. Firefox 主页 被篡改为 2345主页
  20. 提交 AjaxPro加载的速度

热门文章

  1. python编写关不掉的流氓表白软件
  2. 计算机音乐谱病名为爱,天谕手游病名为爱乐谱代码是什么-天谕手游病名为爱乐谱代码分享_快吧手游...
  3. 买低配车,更保值?!坊间有一句戏言:买车都要买低配
  4. 微分-解卷绕-积分算法提升matlab unwrap函数解卷绕范围
  5. JPA自定义VO接受返回结果集(unwrap)
  6. rc列联表_R实战 第十篇:列联表和频数表
  7. java快速排序 (任何人都能看懂的快速排序)
  8. 问题解决 | 黑金AX7020使用Petalinux定制Linux系统遇到的坑
  9. keras_contrib使用问题
  10. TCP连接断开原理剖析