Using PHP QRCode class library to generate two-dimensional code

Source: Internet
Author: User

QRCode is a php QR code generation Library, which makes it easy to generate two-dimensional code.

After downloading, only need to use phpqrcode.php to generate the QR code, of course, your PHP environment must turn on support GD2.

Phpqrcode.php provides a key PNG () method, where:

The parameter $text represents the generated two-bit information text;
The parameter $outfile indicates whether the output QR code picture file, default no;
The parameter $level represents the fault tolerance, i.e., the area covered is also recognized, respectively L (qr_eclevel_l,7%), M (qr_eclevel_m,15%), Q (qr_eclevel_q,25%), H (qr_eclevel_h,30%) ;
The parameter $size indicates the generated picture size, the default is 3, and the parameter $margin indicates the spacing value of the border space around the two-dimensional code;
The parameter $saveandprint indicates whether to save the QR code and display it.

The code is as follows:

public static function png ($text, $outfile =false, $level =qr_eclevel_l, $size =3, $margin =4, $saveandprint =false)
{
$enc = Qrencode::factory ($level, $size, $margin);
Return $enc->encodepng ($text, $outfile, $saveandprint =false);
}
Calling PHP QR code is very simple, and the following code generates a QR code of the content.

Include ' phpqrcode.php ';
QRCode::p ng;
In the actual application, we will add their own logo in the middle of the two-dimensional code, has enhanced the publicity effect. How do you generate a QR code that contains a logo? In fact, the principle is very simple, first use PHP QR code to generate a two-dimensional code image, and then the use of PHP image correlation function, the pre-prepared logo image is added to the newly generated image of the original two-dimensional code, and then regenerate a new QR code image.
The code is as follows:

include ' phpqrcode.php ';  
$value = qr code content  
$errorCorrectionLevel = ' L ';//tolerance level  
$ Matrixpointsize = 6;//generate picture size  
//Generate QR code picture  
QRCode::p ng ($value, ' qrcode.png ', $errorCorrectionLevel, $ Matrixpointsize, 2);

$logo = ' logo.png ';//Ready logo image  
$QR = ' qrcode.png ';//The original two-dimensional code graph   already 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 _height = 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; 
//re-group the picture and resize  
imagecopyresampled ($QR, $logo, $from _width, $ From_width, 0, 0, $logo _qr_width, 
$logo _qr_height, $logo _width, $logo _height);  
}

Output picture
Imagepng ($QR, ' helloweixin.png ');
Echo ' ';

Include ' phpqrcode.php ';
$value =//Two-dimensional code content
$errorCorrectionLevel = ' L ';//Fault tolerance level
$matrixPointSize = 6;//Generate picture size
Generate two-dimensional code images
QRCode::p ng ($value, ' qrcode.png ', $errorCorrectionLevel, $matrixPointSize, 2);
$logo = ' logo.png ';//Ready logo image
$QR = ' qrcode.png ';//The original two-dimensional code diagram 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 picture width  
$QR _height = Imagesy ($QR);//QR code image height  
$logo _width = Imagesx ($logo);//logo picture width  
$logo _height = Imagesy ($logo);// Logo image 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; 
//re-group the picture and resize  
imagecopyresampled ($QR, $logo, $from _width, $from _width, 0, 0, $logo _qr_width, 
$logo _qr_height, $logo _ width, $logo _height);  
}

Output picture
Imagepng ($QR, ' helloweixin.png ');
Echo ' ';
Because the two-dimensional code allows a certain degree of fault tolerance, the general QR code even in the masked part but still able to decode, often we scan the QR code when scanned to even less than half of the scanning results can be decoded, because the generator will be part of the information repeated representation to improve its fault tolerance, This is why we add a logo image in the middle of the QR code does not affect the decoding result of the reason.


Using PHP QRCode class library to generate two-dimensional code

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.