ThinkPHP3.2.3扩展之二维码

王朝学院·作者佚名  2016-08-28  
宽屏版  字体: 小 | 中 | 大 | 超大  

先安照路径放好如图。

[flash=500,400]http://s1.knowsky.com/20160211/cf0lign0uax37.png[/flash]

简单使用无logo:

public function qrcode(){

Vendor('phpqrcode.phpqrcode');

//生成二维码图片

$object = new \QRcode();

$url='http://www.shouce.ren/';//网址或者是文本内容

$level=3;

$size=4;

$errorCorrectionLevel =intval($level) ;//容错级别

$matrixPointSize = intval($size);//生成图片大小

$object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);

}

高级使用带logo:

public function qrcode(){

Vendor('phpqrcode.phpqrcode');

//生成二维码图片

$object = new \QRcode();

$qrcode_path='';

$file_tmp_name='';

$errors=array();

if(!empty($_POST)){

$content = trim($_POST['content']); //二维码内容

$contentSize=$this->getStringLength($content);

if($contentSize>150){

$errors[]='字数过长,不能多于150个字符!';

}

if(isset($_FILES['upimage']['tmp_name']) && $_FILES['upimage']['tmp_name'] && is_uploaded_file($_FILES['upimage']['tmp_name'])){

if($_FILES['upimage']['size']>512000){

$errors[]="你上传的文件过大,最大不能超过500K。";

}

$file_tmp_name=$_FILES['upimage']['tmp_name'];

$fileext = array("image/pjpeg","image/jpeg","image/gif","image/x-png","image/png");

if(!in_array($_FILES['upimage']['type'],$fileext)){

$errors[]="你上传的文件格式不正确,仅支持 png, jpg, gif格式。";

}

}

$tpgs=$_POST['tpgs'];//图片格式

$qrcode_bas_path='upload/qrcode/';

if(!is_dir($qrcode_bas_path)){

mkdir($qrcode_bas_path, 0777, true);

}

$uniqid_rand=date("Ymdhis").uniqid(). rand(1,1000);

$qrcode_path=$qrcode_bas_path.$uniqid_rand. "_1.".$tpgs;//原始图片路径

$qrcode_path_new=$qrcode_bas_path.$uniqid_rand."_2.".$tpgs;//二维码图片路径

if(Helper::getOS()=='linux'){

$mv = move_uploaded_file($file_tmp_name, $qrcode_path);

}else{

//解决windows下中文文件名乱码的问题

$save_path = Helper::safeEncoding($qrcode_path,'GB2312');

if(!$save_path){

$errors[]='上传失败,请重试!';

}

$mv = move_uploaded_file($file_tmp_name, $qrcode_path);

}

if(empty($errors)){

$errorCorrectionLevel = $_POST['errorCorrectionLevel'];//容错级别

$matrixPointSize = $_POST['matrixPointSize'];//生成图片大小

$matrixMarginSize = $_POST['matrixMarginSize'];//边距大小

//生成二维码图片

$object::png($content,$qrcode_path_new, $errorCorrectionLevel, $matrixPointSize, $matrixMarginSize);

$QR = $qrcode_path_new;//已经生成的原始二维码图

$logo = $qrcode_path;//准备好的logo图片

if (file_exists($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图片宽度

$logo_height = imagesy($logo);//logo图片高度

$logo_qr_width = $QR_width / 5;

$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);

//输出图片

//header("Content-type: image/png");

imagepng($QR,$qrcode_path);

imagedestroy($QR);

}else{

$qrcode_path=$qrcode_path_new;

}

}else{

$qrcode_path='';

}

}

$data=array('data'=>array('errors'=>$errors,'qrcode_path'=>$qrcode_path));

$this->assign('data',$data);

$this->display();

演示地址:http://www.shouce.ren/tool/qrcode

用到助手类Helper地址:http://www.thinkphp.cn/topic/34875.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有