程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php生成二維碼和QR圖片中間加logo

php生成二維碼和QR圖片中間加logo

編輯:關於PHP編程

兩年前我寫二維碼的時候還沒有人認識。後來手機上掃描二維碼的軟件多了,微信也改變了這個時代。
感謝智能手機和微信。


==============================================================
二維碼是二維條形碼的一種,可以將網址、文字、照片等信息通過相應的編碼算法編譯成為一個方塊形條碼圖案,手機用戶可以通過攝像頭和解碼軟件將相關信息重新解碼並查看內容。

二維條碼/二維碼(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
 
 
 php生成二維碼的幾種方式 - InSun - Minghacker is Insun

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

參考:QR
http://phpqrcode.sourceforge.net/

php生成二維碼的類庫PHP QR Code的使用介紹
http://www.BkJia.com/kf/201212/178526.html

https://developers.google.com/chart/infographics/docs/qr_codes?hl=zh-CN

http://ishare.iask.sina.com.cn/download/explain.php?fileid=23514545&page=2

 php生成二維碼可以有以下幾種方式
http://blog.csdn.net/shojecom/article/details/8158571

http://www.qrhacker.com/
http://www.shadowdev.com/services/qr/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved