First, the class library used
1, Phpqrcode (PHP library)
2. Qrcode.js (JavaScript Library)
Second, the use of Phpqrcode
Only PHP class library, that is, the generation of two-dimensional code in the background operation. Because in the background to generate a logo with the QR code, then you must first upload the logo image to the server (upload here I used Webuploader)
Phpqrcode How to use:
First download phpqrcode:http://phpqrcode.sourceforge.net/
Then remember to introduce the phpqrcode.php file before using it
$value = $url;//QR code content $errorCorrectionLevel = ' L ';//Set fault tolerance level $matrixPointSize = $size;//Generate picture size QRCode::p ng ($value, ' public _files '. Directory_separator. ' Code '. Directory_separator. ' Qrcode.png ', $errorCorrectionLevel, $matrixPointSize, 2);//Generate two-dimensional code picture No Logo$logo = $tar _path;//upload to the server logo image $QR = ' public _files '. Directory_separator. ' Code '. Directory_separator. ' Qrcode.png ';//The original two-dimensional code graph that has been generated if ($logo!== FALSE) {$QR = Imagecreatefromstring (file_get_contents ($QR)); $logo = imagecreatefromstring (file_get_contents ($logo)); $QR _width = Imagesx ($QR);//QR code image width $QR _height = Imagesy ($QR);//QR code image height $logo _width = imagesx ($logo);//logo Picture width $logo _he ight = Imagesy ($logo);//logo picture height $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 _heig HT);} $name = time (); Imagepng ($QR, ' Public_fiLes '. Directory_separator. ' Code '. Directory_separator. $name. PNG ');//output two-dimensional code image with logo
Third, the use of qrcode.js
Using Qrcode.js to generate two-dimensional code directly on the front-end, first download jquery.qrcode.js
QRCode is also very simple to use:
var length = size*80;//Set the two-dimensional code size length = parseint (length); $ ("#code_img"). QRCode ({//code_img is an IMG tag ID render: " Canvas ", //Set rendering mode, with table and canvas, using canvas rendering performance is relatively good text:url, //scan the QR code after the display of content, you can directly fill in a URL, Scan the QR code and automatically jump to the link width:length, //Two-dimensional code width height:length, background: "#ffffff", //two-dimensional code of the rear color Foreground: "#000000", //The foreground color of the two-D code SRC: $ (' #image '). attr (' src ') //two-D image in the middle of the Code});
The introduction of Jquery.qrcode.js and then write their own JS code, after the implementation of the two-dimensional code can be displayed processing
Mainly two-dimensional code in the middle of the logo reference format, generally take the local image there are both formats: One is a local URL, the other is to convert the picture to Base64 format
At first, I tried the format of the local URL to refer to the picture, found that only reference the image with the JS file in the Unified directory, so the local URL format is not supported, so I adopted the latter way.
Use
<input accept= "image/*" type= "file" id= "File_input" >
To upload and select a local image, and then take its base64 format
var input = document.getElementById ("File_input"); if (typeof filereader=== ' undefined ') { input.setattribute (' disabled ', ' disabled ');} else{ input.addeventlistener (' Change ', Readfile,false);} function ReadFile () { var file = this.files[0]; if (!/image\/\w+/.test (File.type)) { alert ("The file must be a picture!") "); return false; } var reader = new FileReader (); Reader.readasdataurl (file); Reader.onload = function (e) { $ (' #image '). attr (' src ', this.result);//image is the ID of the IMG tag }}
Reads a file as a string of data URLs, and reads the small file directly into the page in a specially formatted URL address. This particular format is base64.
Comparison of three, two class libraries
Two class libraries, one in the background operation, one directly in the front-end operation.
Phpqrcode generates two-dimensional code in the background operation, the resulting picture is saved on the server. Generally generated two-dimensional code is directly saved to the local and then directly use, rarely go to the server two times, so the use of Phpqrcode will make the server image accumulation, occupy unnecessary space, delete the words will also cost extra. So using Phpqrcode is not suitable for this QR code generation tool. And uploading pictures also creates extra overhead.
Qrcode.js directly in the front-end operation, upload images directly saved in the browser, directly in the front-end generation of QR code, do not need any background interference, so as to reduce unnecessary overhead, and will not cause the server to accumulate images and occupy unnecessary space.
Above is (Advanced article) PHP generation with logo QR Code method Summary of the content, more relevant content please pay attention to topic.alibabacloud.com (www.php.cn)!