Implementation method of generating QR code with logo in PHP
This article gives you a comparative introduction to two commonly used methods of generating QR codes with logos. It is very practical. Friends in need can choose according to their own needs
1. Class libraries used
1, phpqrcode (php library)
2, qrcode.js (javascript library)
2. Use of phpqrcode
Only uses the PHP class library, that is, the generation of QR codes is operated in the background. Because you want to generate a QR code with a logo in the background, you must first upload the logo image to the server (I used webuploader for uploading)
How to use phpqrcode:
First download phpqrcode: http://phpqrcode.sourceforge.net/
Then remember to introduce the phpqrcode.php file before using it
$value = $url;//二维码内容 $errorCorrectionLevel = 'L';//设置容错级别 $matrixPointSize = $size;//生成图片大小 QRcode::png($value, 'public_files'.DIRECTORY_SEPARATOR .'code'.DIRECTORY_SEPARATOR .'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);//生成二维码图片 无logo $logo = $tar_path;//上传至服务器的logo图片 $QR = 'public_files'.DIRECTORY_SEPARATOR .'code'.DIRECTORY_SEPARATOR .'qrcode.png';//已经生成的原始二维码图 if ($logo !== FALSE) { $QR = imagecreatefromstring(file_get_contents($QR)); $logo = imagecreatefromstring(file_get_contents($logo)); $QR_width = imagesx($QR);//二维码图片宽度 $QR_height = imagesy($QR);//二维码图片高度 $logo_width = imagesx($logo);//logo图片宽度 $logo_height = imagesy($logo);//logo图片高度 $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_height); } $name = time(); imagepng($QR, 'public_files'.DIRECTORY_SEPARATOR .'code'.DIRECTORY_SEPARATOR .$name.'.png');//输出带logo的二维码图片
3. Use of qrcode.js
Use qrcode.js to directly generate QR codes on the front end. You first need to download jquery.qrcode.js
The use of qrcode is also very simple:
var length = size*80;//设置二维码大小 length = parseInt(length); $("#code_img").qrcode({ //code_img是一个img标签的id render : "canvas", //设置渲染方式,有table和canvas,使用canvas方式渲染性能相对来说比较好 text : url, //扫描二维码后显示的内容,可以直接填一个网址,扫描二维码后自动跳向该链接 width : length, //二维码的宽度 height : length, background : "#ffffff", //二维码的后景色 foreground : "#000000", //二维码的前景色 src: $('#image').attr('src') //二维码中间的图片 });
Introduce jquery.qrcode.js and then Write this js code yourself. After execution, the QR code can be displayed and processed.
is mainly the logo reference format in the middle of the QR code. Generally, there are two formats for taking local pictures: one is the local URL, and the other is One is to convert the image into base64 format
At first I tried the local URL format to reference the image, and found that I could only reference the image in the same directory as the js file, so the local URL format was not supported, so I The latter approach was adopted.
Use
to upload and select a local image, and then take it 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("文件必须为图片!"); return false; } var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function(e){ $('#image').attr('src',this.result);//image为img标签的id } }
Read the file as a string of Data URL strings, and read the small file directly into the page with a URL address in a special format. This special format is base64
3. Comparison between two class libraries
Two class libraries, one operates in the background and the other operates directly in the front end.
phpqrcode generates QR codes and operates in the background, and the generated images are saved on the server. Generally, the generated QR code is saved directly to the local and then used directly. It is rare to go to the server to obtain it for a second time. Therefore, using phpqrcode will cause the pictures in the server to accumulate, taking up unnecessary space, and deleting them will also cost extra money. overhead. So using phpqrcode is not suitable for this QR code generation tool. Moreover, uploading images will also generate unnecessary overhead.
qrcode.js operates directly on the front end. The uploaded images are directly saved in the browser, and the QR code is generated directly on the front end without any background intervention, which reduces unnecessary costs. The necessary overhead will not cause the accumulation of images on the server and occupy unnecessary space.
Summary: The above is the entire content of this article, I hope it will be helpful to everyone's study.
Related recommendations:
php How to read, write and modify json files
php Implementing the method of intercepting specified frames of video into pictures
Basic introduction to PHP regular expressions
The above is the detailed content of Implementation method of generating QR code with logo in PHP. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
