兩年前我寫二維碼的時候還沒有人認識。後來手機上掃描二維碼的軟件多了,微信也改變了這個時代。
感謝智能手機和微信。
==============================================================
二維碼是二維條形碼的一種,可以將網址、文字、照片等信息通過相應的編碼算法編譯成為一個方塊形條碼圖案,手機用戶可以通過攝像頭和解碼軟件將相關信息重新解碼並查看內容。
二維條碼/二維碼(dimensional bar code)是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形記錄數據符號信息的;在代碼編制上巧妙地利用構成計算機內部邏輯基礎的"0"、"1"比特流的概念,使用若干個與二進制相對應的幾何形體來表示文字數值信息,通過圖象輸入設備或光電掃描設備自動識讀以實現信息自動處 理:它具有條碼技術的一些共性:每種碼制有其特定的字符集;每個字符占有一定的寬度;具有一定的校驗功能等。同時還具有對不同行的信息自動識別功能、及處理圖形旋轉變化等特點。在許多種類的二維條碼中,常用的碼制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K 等,QR碼是1994年由日本Denso-Wave公司發明。QR來自英文「Quick Response」的縮寫,即快速反應的意思,源自發明者希望QR碼可讓其內容快速被解碼。QR碼最常見於日本、韓國;並為目前日本最流行的二維空間條碼。
<?php
/** * php生成二維碼的2種方式
* @author insun */ //1.google開放api
$urlToEncode="smart_insun";
generateQRfromGoogle($urlToEncode);
function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0')
{ //$url = urlencode($url);
echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$chl.'" alt="QR code" widhtHeight="'.$widhtHeight.'" widhtHeight="'.$widhtHeight.'"/>';
} //2.php類庫PHP QR Code:http://phpqrcode.sourceforge.net/
/* $data 數據
$filename 保存的圖片名稱
$errorCorrectionLevel 錯誤處理級別
$matrixPointSize 每個黑點的像素
$margin 圖片外圍的白色邊框像素
*/ include "phpqrcode/qrlib.php";
$data = "insun";
$filename ="QR.jpg";
$errorCorrectionLevel = 'L';
$matrixPointSize = 2;
$margin = 5;
QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, $margin);//這樣就生成了QR.jpg

QR圖片中間加logo
<?php
/** * QR Code + Logo Generator QR圖片中間加logo,QR是根據google開放api生成的,其實啥都沒有
* * http://labs.nticompassinc.com */ //ini_set("auto_detect_line_endings", true);
$data = isset($_GET['data']) ? $_GET['data'] : 'http://weixin.qq.com/r/8bxsY6LEqpzVh7MAn_nV';
$size = isset($_GET['size']) ? $_GET['size'] : '200x200';
$logo = isset($_GET['logo']) ? $_GET['logo'] : './logo.jpg';//中間那logo圖
// Get QR Code image from Google Chart API
// http://code.google.com/apis/chart/infographics/docs/qr_codes.html
//https://chart.googleapis.com/chart?cht=qr&chld=H|1&chs='.$size.'&chl='.urlencode($data));
$png = "http://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=Hello+world&chld=L|1&choe=UTF-8";
$QR = imagecreatefrompng($png);//Warning: imagecreatefrompng() [function.imagecreatefrompng]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? =
//$QR = imagecreatefrompng('./chart.png');//外面那QR圖
if($logo !== FALSE){
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);
$QR_height = imagesy($QR);
$logo_width = imagesx($logo);
$logo_height = imagesy($logo);
// Scale logo to fit in the QR Code
$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;
//echo $from_width;exit;
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);
imagedestroy($QR);
?>