qrcode 生成验证码带文字
/**
* 生成二维码
*
* @param int $id
* @param string $file
* @param boolean $is_download
*/
public function qrcode($id, $file = '', $is_download = false)
{
//跳转地址
$url = 'http://local.xxx.net/fgdgdgf';
// 纠错级别:L、M、Q、H
$errorCorrectionLevel = 'L';
// 点的大小:1到10
$matrixPointSize = 10;
$qrcode = QRcode::png($url, false, $errorCorrectionLevel, $matrixPointSize, 2); //获取会议室信息和二维码code
$room=$this->_meetingRoomServ->get($id); //创建背景,并将二维码贴到左边
$bk = imagecreate(750, 470);
imagecolorallocate($bk, 255, 255, 255);
imagecopy($bk, $qrcode, 0, 0, 0, 0, 430, 430); //设置字体颜色
$black = imagecolorallocate($bk, 0, 0, 0); // 字体
$font = APP_PATH . "../www/YaHei.ttf";
// 写入文字
$arr = $this->mbstringtoarray($room['mr_address'],"utf-8");
$mr_address=$this->_getstr($arr);
// 会议室地点
$arr_name = $this->mbstringtoarray($room['mr_name'],"utf-8");
$mr_name=$this->_getstr($arr_name);
// 区域
$arr_mr_device = $this->mbstringtoarray($room['mr_device'],"utf-8");
$mr_device=$this->_getstr($arr_mr_device,18);
imagettftext($bk, 20, 0, 410, 40, $black, $font, $mr_name);
imagettftext($bk, 12, 0, 410, 70, $black, $font, '会议室地点:' . $mr_address);
imagettftext($bk, 12, 0, 410, 90, $black, $font, '会议室区域:' .$room['mr_area']);
imagettftext($bk, 12, 0, 410, 150, $black, $font, '预订时间:' . $room['mr_timestart'] . '-' . $room['mr_timeend']);
imagettftext($bk, 12, 0, 410, 190, $black, $font, '容纳人数:' . $room['mr_galleryful']);
imagettftext($bk, 12, 0, 410, 240, $black, $font, '可用设备:' .$mr_device); if ($file) {
//生成文件
imagepng($bk, $file);
} else if ($is_download) {
//直接下载
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:6000");
Header("Content-Disposition: attachment; filename={$room['mr_address']}-{$room['mr_name']}.png");
imagepng($bk);
} else {
//直接输出图片
header('Content-Type: image/png');
imagepng($bk); }
} /**
* 将字符拆份成段
* @param $str
* @param $charset
* @return array
*/
protected function mbstringtoarray($str,$charset) {
$array=array();
$strlen=mb_strlen($str);
while($strlen){
$array[]=mb_substr($str,0,1,$charset);
$str=mb_substr($str,1,$strlen,$charset);
$strlen=mb_strlen($str);
}
return $array;
}
/**
* 拼接超出字符串
* @param $arr
* @return string
*/
protected function _getstr($arr,$leng=10){
$temp=''; for($i=0;$i<count($arr);$i++)
{
if($i%$leng==0&&$i>0)
{
$temp=$temp."\n";
}
$temp=$temp.$arr[$i];
}
return $temp;
} 引入qrcode文件就可以生成如下的二维码图片

注意:$font这里字体文件路径要使用绝对路径,不能使用相对路径,否则右边的字会出不来。
qrcode 生成验证码带文字的更多相关文章
- python生成验证码,文字转换为图片-乾颐堂
在58或者赶集等一些网站上经常看到手机号是图片格式,或者一些网站的验证码.这些都是动态生成的,今天我们来看一下如何用python把文字生成图片.其实今天主要借助pygame的图像渲染模块,这样比较简单 ...
- asp.net生成缩略图、文字图片水印
/// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] ...
- C#Qrcode生成二维码支持中文,带图片,带文字
C#Qrcode生成二维码支持中文带图片的操作请看二楼的帖子,当然开始需要下载一下C#Qrcode的源码 下载地址 : http://www.codeproject.com/Articles/2057 ...
- phpqrcode生成带logo的二维码图片及带文字的二维码图片
<?php require_once "./phpqrcode/phpqrcode.php"; /** * 这样就可以生成二维码了,实际上在png这个方法里还有几个参数需要使 ...
- TP框架中生成带背景带文字的二维码
首先下载一个phpqrcode的包放到/vendor目录下 链接:https://pan.baidu.com/s/18jV9DypYB_PHDhD6C0iedQ 提取码:qxuo 如果只是单纯生成二维 ...
- Django 生成验证码或二维码 pillow模块
一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. PIL模块只支持到Python 2 ...
- C#生成验证码
生成验证码的类: using System; using System.Collections.Generic; using System.Drawing; using System.Text; na ...
- python生成验证码脚本
最近每天都用python写一个小的脚本,练习使用python语法. 验证码的生成: 这里使用了python的图像处理库PIL,安装PIL的过程中出了一个小麻烦,就使用Pillow-win32的一个文件 ...
- servlet生成验证码
1.因为朋友们都说现在很少用java自带的图形用户接口,所以小白的我就没去看awt和swing组件,因为要抓紧时间学习后面的,完了出去找工作,等以后再回来了解awt和swing:所以制作验证码的代码是 ...
随机推荐
- iOS之UI组件整理
作者:神兽gcc 授权本站转载. 最近把iOS里的UI组件重新整理了一遍,简单来看一下常用的组件以及它们的实现.其实现在这些组件都可以通过Storyboard很快的生成,只是要向这些组件能够变得生动起 ...
- 由一个bug引发的SQLite缓存一致性探索
问题 我们在生产环境中使用SQLite时中发现建表报“table xxx already exists”错误,但DB文件中并没有该表.后面才发现这个是SQLite在实现过程中的一个bug,而这个bug ...
- 版本控制-Git服务器搭建和常用命令使用
Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...
- Mac下QT错误,Xcode配置解决办法
出现错误: Xcode not set up properly. You may need to confirm the license agreement by running / 解决办法如下: ...
- 5-udev多路径
udev多路径 查看scsi的唯一标识符 用这个计算机可以识别 重启服务 想要看到下面的,可能重启服务也不行,那就需要重启计算机了 虚拟磁盘 安装这个包multipath 重启服务生效 重启计算机生效 ...
- 前端开发必学技能之一———非关系数据库又像关系数据库的MongoDB快速入门第一步下载与安装
数据库总的来说,分为两个方向:关系数据库和非关系数据库.我们常见的MySQL.Oracle.SQLSerever以及IBMDB2都是属于关系数据库,这里的关系值得是二维表的结构,但是由于随着web的应 ...
- 一种面向对象的TCP/IP中间件
这是一个使用C++封装的TCP/IP协议栈(仅传输层),属于本人所设计的中间件的一员,具有硬件无关,应用无关特性,使用非常方便,一看代码便知: #include "net.h" / ...
- Bluemix中国版体验(一)
很高兴终于拿到了中国版Bluemix的账号!中国版的Bluemix是由世纪互联运营的,这也是世纪互联继Microsoft Azure,Office 365之后运营的又一个国际一线大品牌的云服务. 中国 ...
- 同步降压DC-DC转换IC——XC9264
设计一个12V转3.3V,输出电流30mA的电源电路,由于项目对转化效率要求较高,所以不能采用低压差线性稳压LDO的方案.经过对比,TOREX的XC9264效率在此转化条件下效率可做到85%以上,比M ...
- [LeetCode] Expression Add Operators 表达式增加操作符
Given a string that contains only digits 0-9 and a target value, return all possibilities to add ope ...