这几天在做的健身房后台的时候有一个将二维码,还有名称 放置背景图上,并且要居中显示,最后生成健身房图片de功能,查找了各种资料,最后完成了属于享健身平台的每一个健身房的一个带有二维码的图片,并且将图片链接存入数据库中。
大概思路是这样的:获取二维码图片,获取背景图片,将二维码图片放置在背景图片上,然后调整X轴,Y轴的位置,最终放置在背景图上合适的位置,保存图片,然后获取图片,将健身房的名称放置在背景图的合适位置,并且水平居中。
名称居中这块要注意要获取字符盒子的左边X点和右边X点,这样才能算出居中的位置,还要注意有汉字和英文的区分,虽说一个汉字3个字符,但是有英文和汉字组合的名称的时候会有偏差,我的做法是用正则匹配有英文的,找到偏差值,将字符的长度减去偏差值,这样就会居中了,代码如下:    //获取二维码图片$type['qr_code']=  ROOT_PATH . 'public'.$user['qr_logocode'];//准备好的背景图片$background = ROOT_PATH.'public/static/gym/images/timg1.png';if ($background !== FALSE) {$QR = imagecreatefromstring(file_get_contents($type['qr_code']));$background = imagecreatefromstring(file_get_contents($background));$QR_width = imagesx($QR);//源图宽度 源图就是需要载入的图片$QR_height = imagesy($QR);//源图高度$logo_width = imagesx($background);//目标图宽度  目标图就是背景图$logo_height = imagesy($background);//目标图高度$logo_qr_width = $logo_width / 1.6;//缩放目标图的width$from_width = ($logo_width - $logo_qr_width) / 2;//目标 X 坐标点$from_height = $QR_height*3.6 ;//目标 Y 坐标点//重新组合图片并调整大小 目标图     源图   目标 X 坐标点  目标 Y 坐标点imagecopyresampled($background, $QR, $from_width, $from_height,//源的X坐标点 源的Y坐标点  目标宽度   目标高度         源图象的宽度  源图象的高度0, 0, $logo_qr_width, $logo_qr_width, $QR_width, $QR_height);$backImg = explode('/',$user['qr_logocode']);foreach ($backImg as &$_v){if(strpos($_v,'jpg')){$_v = 'back_'.$_v;}}$backImgname = implode('/',$backImg);//给新图片命名//输出图片保存在文件夹中,执行成功你会发现你的文件夹中多了一个图片imagejpeg($background, ROOT_PATH . 'public'.$backImgname);//给图片添加健身房名称$text = $user['name'];//文字$strlen = strlen($text);if(preg_match( '/[A-Za-z]*/',$text)){$strlen = $strlen-20;}$font = ROOT_PATH . 'public/static/gym/fonts/PingFang Bold.ttf';//字体$text_x = imagettfbbox (110, $strlen , $font , $text);$widths=$text_x[2]-$text_x[0];//右下角X位置减去左下角X位置得到字符的宽度$widths=($logo_width-$widths)*0.5;//获取居中的X轴$image = \think\Image::open('.'.$backImgname);$image -> text($text,$font,110,'#ffffff',[$widths,1050])->save('.'.$backImgname);}

php生成有二维码的背景图片相关推荐

  1. JAVA生成的二维码以及给二维码添加背景图片

    JAVA生成的二维码以及给二维码添加背景图片** 1.页面只需一行代码即可(用ajax请求得不到响应,也可以用表单提交) window.location.href = "${ctx}/qrc ...

  2. 前端合成二维码与背景图片,批量导出ZIP下载

    前端合成二维码与背景图片,批量导出ZIP下载 背景:需要生成很多的二维码,并且结合背景图片一起生成图片,批量下载到本地,提供给打印厂商进行打印. 方案1:后台合成,后台提供下载. 方案2:前端合成,前 ...

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

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

  4. golang合并支付二维码到背景图片

    [需求背景] 公司游戏要上字节小游戏,而且改用golang来作为服务端接口(之前微信小游戏是用php作为api接口的),平台对于ios游戏不支持内购支付(跟微信那些一样因为苹果分成问题).微信小游戏还 ...

  5. qrcode将生成的二维码转成图片格式

    微信里打开页面时需要长按识别二维码,所以需要转下图片 <div id="qrcode"></div> <img id="img"/ ...

  6. 将qrcode生成的二维码转成图片

    将页面上原来canvas格式的二维码隐藏,新建一个div用于存放生成的img标签 <div class="canvasCode" id ="query" ...

  7. Android之自定义生成彩色二维码

    先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro ...

  8. thinkphp生成带二维码的海报

    阿里云搞活动,想要抓紧买 用thinkphp生成带二维码的海报功能. 准备:公众号二维码图片一张 背景图片一张 将二维码和背景图片合成的方法,可添加到common/common/function.ph ...

  9. Python生成动态二维码,只需几行代码,这也太有意思了~

    兄der们,今天我们试试只用几行代码,生成动态二维码! 来吃够~ 模块相关 我们要用到的是,MyQR这个库, 当然,最直接的方式,就是pip install pip install MyQR 参数讲解 ...

最新文章

  1. CSS3边框背景-边框背景(-border-image)
  2. C#利用Graphics类绘制进阶--绘制二维码
  3. WebService中使用自定义类的解决方法(5种)
  4. python手机代码识别数字_python实现kNN算法识别手写体数字的示例代码
  5. jquery 隐藏表格某列
  6. shell中的各种括号的使用方法
  7. matlab中随机函数的具体使用方法
  8. [Java] Hashmap分析
  9. 安迈云加入GDCA全球分布式云联盟,携手业内共建新生态
  10. c++ winpcap开发(1)
  11. 95-080-058-源码-启动-启动taskexecutor
  12. 【Linux】静态库与动态库的生成及调用
  13. 力扣题目——103. 二叉树的锯齿形层序遍历
  14. 拓端tecdat|R语言使用二元回归将序数数据建模为多元GLM
  15. NPDP第五章 工具与度量
  16. SVG和G语言的混合显示引擎
  17. 常用Array对象方法详解(微信小程序)
  18. Idea项目如何打包
  19. windows系统删除顽固文件
  20. out了吧,这份最新阿里、腾讯、华为、字节跳动等大厂的薪资和职级对比,你都没看过?

热门文章

  1. Linux动态监控进程
  2. 雅虎与软银推进谈判:或出售雅虎日本35%股份
  3. 线程状态:分离状态(detached)与可结合状态(joinable)
  4. 李宏毅 2020 ML Homework 1: Linear Regression
  5. 学计算机头发变白了,掉头发,头发变白可不是小事!该如何调理?
  6. 根据多个地点的经纬度求计算中心点经纬度
  7. BoCloud博云完成近亿元B轮融资,向PaaS及自动化运维注入强大加速力
  8. 【Leetcode】416 分割等和子集
  9. Java IO流笔记
  10. Ceph 进阶系列(四):Ceph的纠删码特性 EC(Erasure Code)