Home >Backend Development >PHP Tutorial >PHP programming tips: How to generate QR code with custom colors?

PHP programming tips: How to generate QR code with custom colors?

WBOY
WBOYOriginal
2023-08-26 20:03:281157browse

PHP programming tips: How to generate QR code with custom colors?

PHP Programming Tips: How to generate a QR code with custom colors?

QR code is a common image code in modern life. It expresses information through a series of black and white squares. In PHP programming, we often need to generate QR codes as a way to display information that users can scan. However, with the increasing demand for design, simple black and white QR codes can no longer meet user requirements. In this article, we will learn how to generate QR codes with custom colors using PHP.

First, we need to install a PHP library for generating QR codes. In this article, we use the phpqrcode library. It can be installed through Composer, just run the following command in the command line:

composer require endroid/qr-code

After the installation is complete, we can use the following code to generate a simple black and white QR code:

<?php
require 'vendor/autoload.php';

use EndroidQrCodeErrorCorrectionLevel;
use EndroidQrCodeQrCode;

$qrCode = new QrCode('https://www.example.com');
$qrCode->setSize(300);

header('Content-Type: '.$qrCode->getContentType());
echo $qrCode->writeString();

The above code The necessary files are introduced first, and then a QrCode object is created. The parameters passed in the constructor are the content that needs to generate the QR code. The setSize method sets the size of the generated QR code, here it is set to 300 pixels. Finally, set the format of the output content through the header function, and use echo to output the QR code.

Now, we modify the code to generate a QR code with a custom color:

<?php
require 'vendor/autoload.php';

use EndroidQrCodeColorColor;
use EndroidQrCodeErrorCorrectionLevel;
use EndroidQrCodeEncodingEncoding;
use EndroidQrCodeQrCode;

$qrCode = new QrCode('https://www.example.com');
$qrCode->setSize(300);
$qrCode->setMargin(10);
$qrCode->setEncoding(new Encoding('UTF-8'));
$qrCode->setErrorCorrectionLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::HIGH));
$qrCode->setForegroundColor(new Color(0, 0, 0)); // 设置前景色为黑色
$qrCode->setBackgroundColor(new Color(255, 255, 255)); // 设置背景色为白色

header('Content-Type: '.$qrCode->getContentType());
echo $qrCode->writeString();

In the above code, we have added the following method calls to implement custom colors :

  • The setMargin method sets the margin of the QR code, here it is set to 10 pixels.
  • The setEncoding method sets the encoding format of the QR code, here it is set to UTF-8.
  • The setErrorCorrectionLevel method sets the error correction level of the QR code. Here it is set to HIGH, which is the high error correction level.
  • The setForegroundColor method sets the foreground color of the QR code, here it is set to black.
  • The setBackgroundColor method sets the background color of the QR code, here it is set to white.

Through the above modifications, we successfully generated a QR code with a custom color. Of course, you can also further adjust the RGB value of the color according to your needs to achieve a more colorful effect.

In practical applications, we can integrate the above code into a function and save the generated QR code to a file for calling when needed. The following is a sample function:

function generateQRCode($content, $size, $margin, $foregroundColor, $backgroundColor, $fileName) {
    require 'vendor/autoload.php';

    use EndroidQrCodeColorColor;
    use EndroidQrCodeErrorCorrectionLevel;
    use EndroidQrCodeEncodingEncoding;
    use EndroidQrCodeQrCode;
    
    $qrCode = new QrCode($content);
    $qrCode->setSize($size);
    $qrCode->setMargin($margin);
    $qrCode->setEncoding(new Encoding('UTF-8'));
    $qrCode->setErrorCorrectionLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::HIGH));
    $qrCode->setForegroundColor(new Color($foregroundColor[0], $foregroundColor[1], $foregroundColor[2]));
    $qrCode->setBackgroundColor(new Color($backgroundColor[0], $backgroundColor[1], $backgroundColor[2]));
    
    file_put_contents($fileName, $qrCode->writeString());
}

Usage example:

generateQRCode('https://www.example.com', 300, 10, [0, 0, 0], [255, 255, 255], 'qrcode.png');

With the above code, we can easily generate a QR code with custom colors and save it to a file. In this way, we can flexibly generate a QR code that suits us according to actual needs.

This article introduces how to use PHP to generate QR codes with custom colors. We learned how to install and use the phpqrcode library, and made a simple extension to generate black and white QR codes. I hope this knowledge can help you better cope with the needs of actual projects and improve your programming skills.

Reference:

  • [phpqrcode library document](https://github.com/endroid/qr-code)

The above is the detailed content of PHP programming tips: How to generate QR code with custom colors?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn