Heim > Backend-Entwicklung > PHP-Tutorial > Zwei Möglichkeiten, QR-Code mit Logobild mit PHP zu generieren

Zwei Möglichkeiten, QR-Code mit Logobild mit PHP zu generieren

小云云
Freigeben: 2023-03-22 18:32:01
Original
2015 Leute haben es durchsucht

Dieser Artikel stellt Ihnen hauptsächlich zwei Methoden zum Generieren von QR-Codes mit Logobildern in PHP vor. Ich hoffe, er kann Ihnen helfen.

1. Verwenden Sie die Google-API, um QR-Code zu generieren.
Google stellt eine relativ vollständige Schnittstelle zur QR-Code-Generierung bereit. Der Aufruf der API-Schnittstelle ist sehr einfach:

$urlToEncode="http://www.php.cn";
generateQRfromGoogle($urlToEncode);
/**
 * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】
 * @param string $chl 二维码包含的信息,可以是数字、字符、二进制信息、汉字。
 不能混合数据类型,数据必须经过UTF-8 URL-encoded
 * @param int $widhtHeight 生成二维码的尺寸设置
 * @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。
 * L-默认:可以识别已损失的7%的数据
 * M-可以识别已损失15%的数据
 * Q-可以识别已损失25%的数据
 * H-可以识别已损失30%的数据
 * @param int $margin 生成的二维码离图片边框的距离
 */
function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0')
{
 $chl = urlencode($chl);
 echo &#39;<img src="http://chart.apis.google.com/chart?chs=&#39;.$widhtHeight.&#39;x&#39;.$widhtHeight.&#39;
 &cht=qr&chld=&#39;.$EC_level.&#39;|&#39;.$margin.&#39;&chl=&#39;.$chl.&#39;" alt="QR code" widhtHeight="&#39;.$widhtHeight.&#39;
 " widhtHeight="&#39;.$widhtHeight.&#39;"/>&#39;;
}
Nach dem Login kopieren


2. Verwenden Sie die PHP-QR-Code-Generierungsbibliothek PHP QR-Code zum Generieren von QR-Codes

PHP QR-Code ist eine PHP-QR-Code-Generierungsbibliothek, die zum einfachen Generieren von QR-Codes verwendet werden kann Die offizielle Website bietet Downloads und mehrere Demonstrationsdemos unter der Adresse: http://phpqrcode.sourceforge.net/.
Nachdem Sie die von der offiziellen Website bereitgestellte Klassenbibliothek heruntergeladen haben, müssen Sie nur noch phpqrcode.php verwenden, um den QR-Code zu generieren. Natürlich muss Ihre PHP-Umgebung GD2-Unterstützung ermöglichen. phpqrcode.php bietet eine Schlüsselmethode png(), bei der der Parametertext die Generierung eines zweistelligen Informationstextes angibt; der Parameter outfile gibt an, ob ein QR-Code-Bild ausgegeben werden soll Datei, der Standardwert ist nein; Der Parameter level stellt die Fehlertoleranzrate dar, das heißt, der abgedeckte Bereich kann noch erkannt werden, bzw. L (QRECLEVELL, 7level stellt die Fehlertoleranzrate dar, das heißt, der abgedeckte Bereich kann noch erkannt werden, bzw. L (QRECLEVELL, 7size stellt die Größe des generierten Bildes dar. Der Standardwert ist 3; der Parameter margin stellt den Abstandswert des leeren Bereichs des Randes um den QR-Code dar; der Parameter margin stellt den Abstandswert des Leerzeichens dar Bereich des Randes um den QR-Code; der Parameter saveandprint gibt an, ob der QR-Code gespeichert und angezeigt werden soll. Der folgende Code kann einen QR-Code mit dem Inhalt „http://“ generieren. www.jb51.net".

PHP-Code
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);
}
Nach dem Login kopieren
include 'phpqrcode.php';

QRcode::png('http://www.jb51.net');

In In der tatsächlichen Anwendung fügen wir unser eigenes Logo in die Mitte des QR-Codes ein, um den Werbeeffekt zu erhöhen. Tatsächlich ist das Prinzip sehr einfach Codebild und verwenden Sie dann die bildbezogenen Funktionen von PHP, um das zuvor vorbereitete Logobild zum neu generierten Original-QR-Code in der Mitte des Codebilds hinzuzufügen und dann ein neues QR-Codebild neu zu generieren


Das Folgende ist ein Verweis auf den obigen Code, der keine Bilddateien erzeugt und zum Aufrufen geeignet ist.

include &#39;phpqrcode.php&#39;;
$value = &#39;http://www.jb51.net&#39;; //二维码内容
$errorCorrectionLevel = &#39;L&#39;;//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
QRcode::png($value, &#39;qrcode.png&#39;, $errorCorrectionLevel, $matrixPointSize, 2);
$logo = &#39;logo.png&#39;;//准备好的logo图片
$QR = &#39;qrcode.png&#39;;//已经生成的原始二维码图
  
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);
}
//输出图片
imagepng($QR, &#39;helloweba.png&#39;);
echo &#39;<img src="helloweba.png">&#39;;
Nach dem Login kopieren

Da QR-Codes ein gewisses Maß an Fehlertoleranz ermöglichen Wenn wir einen QR-Code scannen, können wir ihn oft noch nicht einmal zur Hälfte scannen. Dies liegt daran, dass der Generator einen Teil davon wiedergibt Die Informationen zur Verbesserung der Fehlertoleranz haben daher keinen Einfluss auf das Dekodierungsergebnis.

<?php
include &#39;phpqrcode.php&#39;;
$value = $_GET[&#39;url&#39;];//二维码内容
$errorCorrectionLevel = &#39;L&#39;;//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
QRcode::png($value, &#39;qrcode.png&#39;, $errorCorrectionLevel, $matrixPointSize, 2);
$logo = &#39;jb51.png&#39;;//准备好的logo图片
$QR = &#39;qrcode.png&#39;;//已经生成的原始二维码图
 
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);
}
//输出图片
Header("Content-type: image/png");
ImagePng($QR);
Nach dem Login kopieren
Zugehörige Empfehlungen:

PHP-Implementierung QR-Code-Klasse mit Logo

PHP-generiertes WeChat-QR-Code-Beispiel

So erstellen und laden Sie PHP-QR-Code herunter

Das obige ist der detaillierte Inhalt vonZwei Möglichkeiten, QR-Code mit Logobild mit PHP zu generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage