分(fēn)享到:

關于php識别二維碼

日(rì)期:2017-01-06 14:54:00     閱讀(dú):892     文章(zhāng)來(lái)源:源美網絡     标簽:深圳網站(zhàn)建設,網站(zhàn)數據庫

現在很多應用場景需要用到二維碼的快(kuài)速識别,比如(rú)微信上的很多應用。本文使用QrReader類庫,可(kě)以很簡單的實現二維碼識别的功能;對普通二維碼、多色彩二維碼、帶logo二維碼等都(dōu)有極高的識别率。另外需要注意,該類庫僅支持php5.3及以上版本的php環境,否則會報錯無法正常運行。


1、首先引入類庫,fun.php是我自(zì)己寫的一個函數,與識别無關:

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

include_once('error404.html');

include_once('error404.html');

set_time_limit(0);


2、定義圖片路(lù)徑進行識别操作(zuò)

$pic="20140317101740310.jpg";

$qrcode = new QrReader($pic);

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

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


3、有可(kě)能會遇到寬高非常大(dà)的二維碼圖,這種情況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文件(jiàn)錯誤處理(lǐ)失敗';

}

break;

case "png":

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

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

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

} else {

echo 'png文件(jiàn)錯誤處理(lǐ)失敗';

}

break;

case "gif":

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

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

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

} else {

echo 'gif文件(jiàn)錯誤處理(lǐ)失敗';

}

break;

}

imagedestroy($im);

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

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

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

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

}


4、如(rú)果是應用在微信場景,有時可(kě)能需要過濾掉一些非法的二維碼

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

echo "非法驗證碼圖片!";

}

QrReader這個類庫的識别準确度應該可(kě)以應用在絕大(dà)多數實際應用中,而且使用方法簡單。



文章(zhāng)引用:

本站(zhàn)文章(zhāng)爲深圳網站(zhàn)建設·源美網絡原創策劃,如(rú)有版權糾紛或者違規問(wèn)題,請(qǐng)聯系我們删除,謝謝!

上一篇: 如(rú)何利用jquery實現多條件(jiàn)篩選

下一篇: mysql索引的類型和優缺點

返回列表
最新案例
OUR ADVANTAGE WORKS

售後保障

承諾任何問(wèn)題1小時内解決

數據備份

更安全、更高效、更穩定

價格公道精準

項目經理(lǐ)精準報價不弄虛作(zuò)假

合作(zuò)無風(fēng)險

重合同講信譽,無效全額退款