使用php实现二维码生成并结合使用bootstrap响应式布局

现如今很多地方都用二维码,尤其一些电商网站,比如淘宝,京东都大量出现二维码,还有就是陈捷发现优酷的二维码很有意思,就是用优酷的二维码扫了以后可以继续看没有看完的视频。其实经过测试后发现里面其实只是加入了一个播放的时间的url参数,但是这样做就很有意思。大大方便的用户的使用。感觉二维码以后必然会成为趋势。所以基于此我想实现这样的功能,然后我们可以在网上很容易搜到qrcode这样的php开源类,具体大家可以百度,我就不放出地址了。官方已经写的很详细了,大家可以去参考。

我自己在实现的时候还加入了bootstrap的前端框架,例子在官方也有详实的解读,大家自己搜搜。以便来让网站可以支持移动端的访问。贴出部分重要的代码片段,因为代码一直在修改更新具体的大家可以参考官方实例和我的index.php内的代码。

文件输出二维码
 $data = '测试数据'; 
  // 生成的文件名 
 $filename = $errorCorrectionLevel.'|'.$matrixPointSize.'.png'; 
   // 纠错级别:L、M、Q、H 
 $errorCorrectionLevel = 'L';  
  // 点的大小:1到10 
 $matrixPointSize = 4;  
  QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, 2);

二维码上色
如果引用的是phpqrcode.php则
修改phpqrcode.php中QRimage类的image方法中颜色设置部分的代码,代码在第987、988行,一个前景色
,一个背景色:
$col[0] = ImageColorAllocate($base_image,255,255,255);
$col[1] = ImageColorAllocate($base_image,0,0,0);
如果引用的是qrlib.php则修改qrimage.php里相同的代码区域
在使用qrcode的时候推荐引用qrlib.php,因为phpqrode.php是代码集合效率较低,不推荐直接引用此文
件。

带logo输出二维码
$QR = imagecreatefromstring(file_get_contents($QR));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);
$QR_height = imagesy($QR);
$logo_width = imagesx($logo);
$logo_height = imagesy($logo);
$logo_qr_width = $QR_width / 4;
$scale = $logo_width / $logo_qr_width;
$logo_qr_height = $logo_height / $scale;
$from_width = ($QR_width - $logo_qr_width) / 2;
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, 
$logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
//修改文件名,和无logo的文件名做区分,因为logo不同,所以文件名加入mt_rand随机数
imagepng($QR,$filename);

 

代码已经传到网上,可以手机访问试试,完全自适应移动设备的。http://qrcode.chenjie.info/

代码点此下载https://github.com/chenjiesuper/qrcode.chenjie.info

pc,pad访问效果

pc_pad

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

手机访问效果

phone

 

 

 

 

 

 

 

 

 

 

 

 

 

附上更新记录

水熊二维码生成器0.1版
基于qrcode实现二维码生成
基于bootstrap前端框架实现布局

水熊二维码生成器0.2版
增加二维码logo添加
修复ie,谷歌功能和页面的兼容问题,兼容ie7,8,9,ff,chrome

使用php实现二维码生成并结合使用bootstrap响应式布局》有3个想法

  1. 下载http://1drv.ms/1hj9h1C 哥,这个下载连接用不了了,能不能发这个二维码的代码给我学习一下,万分感谢
    邮箱spybbb@163.com

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据