分享到:

关于php识别二维码

日期:2017-01-06     阅读:128     文章来源:源美设计     标签:二维码

现在很多应用场景需要用到二维码的快速识别,比如微信上的很多应用。本文使用QrReader类库,可以很简单的实现二维码识别的功能;对普通二维码、多色彩二维码、带logo二维码等都有极高的识别率。另外需要注意,该类库仅支持php5.3及以上版本的php环境,否则会报错无法正常运行。


1、首先引入类库,fun.php是我自己写的一个函数,与识别无关:

header("Content-type:text/html;charset=utf-8");

include_once('./lib/QrReader.php');

include_once('./lib/fun.php');

set_time_limit(0);


2、定义图片路径进行识别操作

$pic="20140317101740310.jpg";

$qrcode = new QrReader($pic);

$text = $qrcode->text(); //返回识别后的文本

echo "初次识别:".$text."<br>";


3、有可能会遇到宽高非常大的二维码图,这种情况QrReader无法识别,我是把源图缩小后再进行二次识别

if (empty($text)) {

$ex=trim(pathinfo($pic, PATHINFO_EXTENSION));

mkThumbnail($pic,500,null,"tmp_".$pic);

switch ($ex) {

case "jpg":

$im = imagecreatefromjpeg("tmp_".$pic);

if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {

imagejpeg($im, "tmp_".$pic);

} else {

echo 'jpeg文件错误处理失败';

}

break;

case "png":

$im = imagecreatefrompng("tmp_".$pic);

if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {

imagepng($im, "tmp_".$pic);

} else {

echo 'png文件错误处理失败';

}

break;

case "gif":

$im = imagecreatefromgif("tmp_".$pic);

if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {

imagegif($im, "tmp_".$pic);

} else {

echo 'gif文件错误处理失败';

}

break;

}

imagedestroy($im);

$qrcode2 = new QrReader("tmp_".$pic);

$text = $qrcode2->text(); //返回识别后的文本

echo "二次识别:".$text."<br>";;

//unlink("tmp_".$pic);

}


4、如果是应用在微信场景,有时可能需要过滤掉一些非法的二维码

if (empty($text) || !strstr($text,'weixin.qq.com')) {

echo "非法验证码图片!";

}

QrReader这个类库的识别准确度应该可以应用在绝大多数实际应用中,而且使用方法简单。



文章引用:http://www.szymweb.com/new/190.html

本站文章为深圳网站建设·源美设计原创策划,如有版权纠纷或者违规问题,请联系我们删除,谢谢!

上一篇:如何利用jquery实现多条件筛选

下一篇:mysql索引的类型和优缺点

返回列表
最新案例
OUR ADVANTAGE WORKS