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:所以制作验证码的代码是 ...
随机推荐
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
- 用collectionview实现瀑布流-转(后面附demo,供参考)
算法总体思路 先说一下总体上的思路.既然图片的大小.位置各不一样,我们很自然地会想到需要算出每个item的frame,然后把这些frame赋值给当前item的UICollectionViewLayou ...
- EXD_BAD_ACCEEE
iOS开发过程中,普通的bug通常较容易定位问题所在,但是,EXD_BAD_ACCEEE问题却比较不易查找问题.本文记录下解决EXD_BAD_ACCEEE问题的过程.首先说一下 EXC_BAD_ACC ...
- Linux-学习前言
本随笔会持续,不定期更新.我有上网找与Linux相关的博客,发现很多人只写了几篇就没更新了,没有坚持下来!希望我能keep on. 最近一个月是考试月,可能更新会比较少.
- 让代码更简单——自定义toBean实现
经过历时三天的鏖战,终于将阶段性项目——新闻发布系统做完了.在编码过程中,发现了很多冗余代码,统一流程,却需要不断重复编码——将用户输入实例化为对象的过程. 例: Person.set("i ...
- Python:版本升级
Linux 上安装的python版本是2.6.6,不能满足我运行软件的要求,所以对python进行升级.现在要了解MySQL Fabric,需要使用Python 2.7,所以只能对现有版本进行升级了. ...
- SPI基础知识
Serial Peripheral Interface 是摩托罗拉公司提出的一种总线协议,主要应用在EEPROM,FLASH,实时时钟,A/D转换,以及数字信号处理和数字信号解码器中 是一种高速,全双 ...
- 5-4 bash脚本编程之三 条件判断及算术运算
1. 反引号是引用执行结果,并非是返回值 如下是错误的,结果是一行行记录,不是返回值 放大为: 练习 2. shell中如何进行算术运算 A=3 B=4 1. let算术运算表达式 2. $[算术运算 ...
- android Broadcast广播消息代码实现
我用的是Fragment , 发送写在一个类中,接收写在另外一个类的内部类中.代码动态实现注册. 代码: myReceiver = new zcd.netanything.MyCar.myReceiv ...
- java日志组件介绍(common-logging,log4j,slf4j,logback )
转自:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging是apache提供的一个通用的日志 ...