Two methods and instances _php of PHP generating two-dimensional code

Source: Internet
Author: User

With the progress of science and technology, two-dimensional code applications more and more widely, the site has an article introduced by using jquery plug-ins to generate two-dimensional code, today I give you to share the next how to use PHP to generate two-dimensional code, and how to generate the middle with logo image two-dimensional code.

Using Google API to generate two-dimensional code

Google provides a more complete two-dimensional code generation interface, calling API interface is very simple, the following is the calling code:

Copy Code code as follows:

$urlToEncode = "Http://www.jb51.net";
Generateqrfromgoogle ($urlToEncode);
/**
* Google API two-dimensional code generation "QRCode can store up to 4,296 alphanumeric types of any text, you can view two-dimensional code data format"
* @param string $chl Two-dimensional code contains information that can be numbers, characters, binary information, Chinese characters.
Cannot mix data type, data must pass through UTF-8 url-encoded
* @param int $widhtHeight to generate two-dimensional code size setting
* @param string $EC _level Optional error correction level, QR code supports four levels of error correction, used to restore lost, read-wrong, fuzzy, data.
* L Default: Can identify lost 7% of the data
* M can identify 15% of lost data
* Q can identify 25% of lost data
* H can identify 30% of lost data
* @param the distance of the two-dimensional code generated by the int $margin from the picture border
*/
function Generateqrfromgoogle ($chl, $widhtHeight = ' _level= ', $EC ' L ', $margin = ' 0 ')
{
$chl = UrlEncode ($CHL);
Echo ' &cht=qr&chld= '. $EC _level. ' | ' $margin. ' &chl= '. $chl. ' alt= ' QR code ' widhtheight= '. $widhtHeight. '
"Widhtheight=" '. $widhtHeight. ' " /> ';
}

Using PHP two-dimensional code to generate a class library PHP QR code to generate a two-dimensional code

PHP QR code is a PHP two-dimensional code generation class library, using it can easily generate two-dimensional code, the official website provided a download and multiple demo demo, view address: http://phpqrcode.sourceforge.net/.
Download the class library provided by the official website, only need to use phpqrcode.php can generate two-dimensional code, of course, your PHP environment must open support GD2. Phpqrcode.php provides a critical PNG () method in which the parameter $text represents the generated two-bit text of the message, the parameter $outfile indicates whether the two-dimensional code picture file is output, the default is no, and the parameter $level indicates fault tolerance, that is, the area covered is also recognizable, are L (qr_eclevel_l,7%), M (qr_eclevel_m,15%), Q (qr_eclevel_q,25%), H (qr_eclevel_h,30%); parameter $size indicates the size of the picture generated, the default is 3; parameter $ The margin represents the space value of the border around the two-dimensional code, and the parameter $saveandprint indicates whether to save the two-dimensional code and display it.

Copy Code code 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);
}

Invoking PHP QR code is very simple, and the following code generates a two-dimensional code with the content "Http://www.jb51.net".
Copy Code code as follows:

Include ' phpqrcode.php ';
QRCode::p ng (' http://www.jb51.net ');

In practical application, we will add our own logo in the middle of the two-dimensional code, which has enhanced the publicity effect. So how do you generate a two-dimensional code that contains a logo? In fact, the principle is very simple, first use PHP QR code to generate a two-dimensional image, and then use the image of PHP-related functions, will be prepared in advance to add the logo to the original two-dimensional code picture, and then regenerate a new two-dimensional code picture.
Copy Code code as follows:

Include ' phpqrcode.php ';
$value = ' http://www.jb51.net '; Two-dimensional code content
$errorCorrectionLevel = ' L ';//Fault tolerance level
$matrixPointSize = 6;//Build picture size
To generate a two-dimensional code picture
QRCode::p ng ($value, ' qrcode.png ', $errorCorrectionLevel, $matrixPointSize, 2);
$logo = ' logo.png ';//Ready logo picture
$QR = ' qrcode.png ';//The original two-dimensional code map that has been generated

if ($logo!== FALSE) {
$QR = imagecreatefromstring (file_get_contents ($QR));
$logo = imagecreatefromstring (file_get_contents ($logo));
$QR _width = Imagesx ($QR);//Two-dimensional code picture width
$QR _height = Imagesy ($QR);//Two-dimensional code picture 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;
Regroup and resize pictures
Imagecopyresampled ($QR, $logo, $from _width, $from _width, 0, 0, $logo _qr_width,
$logo _qr_height, $logo _width, $logo _height);
}
Output picture
Imagepng ($QR, ' helloweba.png ');
Echo ' ';

Because the two-dimensional code is allowed to have certain fault-tolerant nature, the normal two-dimensional code, even though it is still able to decode the part, often scans the two-dimensional code when it is even less than half to decode the scan result, because the generator will repeat part of the information to improve its fault tolerance. That's why we add a logo image to the middle of a two-dimensional code that doesn't affect the decoding result.

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.