Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung der phpqrcode-Klasse zum Generieren von QR-Code

Detaillierte Erklärung der phpqrcode-Klasse zum Generieren von QR-Code

php中世界最好的语言
php中世界最好的语言Original
2018-03-24 09:22:428557Durchsuche

Dieses Mal werde ich Ihnen eine detaillierte Erklärung des von der phpqrcode-Klasse generierten QR-Codes geben. Was sind die Vorsichtsmaßnahmen für die Generierung des QR-Codes durch die phpqrcode-Klasse? Schauen Sie mal rein.

Das Beispiel in diesem Artikel beschreibt, wie PHP QR-Codes basierend auf der phpqrcode-Klasse generiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Es ist ziemlich schwierig, die PHP-Sprache zum Generieren von QR-Codes zu verwenden. Natürlich heißt die Schnittstelle zum Generieren von QR-Code-Bildern (zum Beispiel: Liantu .com http://www Wenn Sie den Code zum Generieren selbst schreiben (außer der Schnittstelle von .liantu.com/), haben Sie wirklich keine Möglichkeit, anzufangen. Wir können jedoch phpqrcode verwenden, eine vorgefertigte Klassendatei, PHP-QR-Code-Generierungsklassenbibliothek , mit der sich problemlos QR-Codes generieren lassen.

Vorbereitende Vorbereitung:

1.phpqrcode-KlasseDateidownload, Download-Adresse: https://sourceforge.net /projects/phpqrcode/
2. Die PHP-Umgebung muss die Unterstützung der GD2-Erweiterungsbibliothek aktivieren (normalerweise aktiviert)

Methodeninterpretation:

Die heruntergeladene Klassendatei ist ein komprimiertes Paket, das viele Dateien und Demonstrationsprogramme enthält. Wir benötigen nur die Datei phpqrcode.php, um den QR-Code zu generieren. Es handelt sich um eine Sammlungsdatei mehrerer Klassen. Wir müssen die Methode png() (Zeile 3090) der Klasse QRcode (Zeile 2963) verwenden:

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);
}

Der erste Parameter $text: Der im QR-Code enthaltene Inhalt kann aus Links, Text, JSON-Strings usw. bestehen.
Der zweite Parameter$outfile: Der Standardwert ist false, es wird nur eine Datei generiert QR-Code-Bild zur Ausgabe; andernfalls müssen Sie den Dateinamen und den Pfad zum Speichern des generierten QR-Code-Bildes angeben.
Der dritte Parameter$level: Der Standardwert ist L, der Wert sein kann von diesem Parameter übergeben Sie sind L(QR_ECLEVEL_L, 7%), M(QR_ECLEVEL_M, 15%), Q(QR_ECLEVEL_Q, 25%), H(QR_ECLEVEL_H, 30%). Dieser Parameter steuert die Fehlertoleranzrate des QR-Codes. Verschiedene Parameter stellen den Prozentsatz des Bereichs dar, der abgedeckt werden kann, d. h. der abgedeckte Bereich kann noch identifiziert werden.
Der 4. Parameter$size: Steuert die Größe des generierten Bildes , der Standardwert ist 4;
Der 5. Parameter $margin: Steuern Sie die Größe des leeren Bereichs zum Generieren von QR-Codes;
Der sechste Parameter$saveandprint: Speichern Sie die QR-Code-Bild und zeigen Sie es an, $outfile muss den Bildpfad übergeben ;

Verwendungsbeispiel:

1. QR-Code generieren (Bilddatei generieren)

// 1. 生成原始的二维码(生成图片文件)
function scerweima($url=''){
  require_once 'phpqrcode.php';
  $value = $url;         //二维码内容
  $errorCorrectionLevel = 'L';  //容错级别
  $matrixPointSize = 5;      //生成图片大小
  //生成二维码图片
  $filename = 'qrcode/'.microtime().'.png';
  QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
  $QR = $filename;        //已经生成的原始二维码图片文件
  $QR = imagecreatefromstring(file_get_contents($QR));
  //输出图片
  imagepng($QR, 'qrcode.png');
  imagedestroy($QR);
  return '<img src="qrcode.png" alt="使用微信扫描支付">';
}
//调用查看结果
echo scerweima('https://www.baidu.com');

2. Logo zum generierten QR-Code hinzufügen (Bilddatei generieren)

//2. 在生成的二维码中加上logo(生成图片文件)
function scerweima1($url=''){
  require_once 'phpqrcode.php';
  $value = $url;         //二维码内容
  $errorCorrectionLevel = 'H';  //容错级别
  $matrixPointSize = 6;      //生成图片大小
  //生成二维码图片
  $filename = 'qrcode/'.microtime().'.png';
  QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
  $logo = 'qrcode/logo.jpg'; //准备好的logo图片
  $QR = $filename;      //已经生成的原始二维码图
  if (file_exists($logo)) {
    $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 / 4;   //组合之后logo的宽度(占二维码的1/5)
    $scale = $logo_width/$logo_qr_width;  //logo的宽度缩放比(本身宽度/组合后的宽度)
    $logo_qr_height = $logo_height/$scale; //组合之后logo的高度
    $from_width = ($QR_width - $logo_qr_width) / 2;  //组合之后logo左上角所在坐标点
    //重新组合图片并调整大小
    /*
     * imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中
     */
    imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);
  }
  //输出图片
  imagepng($QR, 'qrcode.png');
  imagedestroy($QR);
  imagedestroy($logo);
  return '<img src="qrcode.png" alt="使用微信扫描支付">';
}
//调用查看结果
echo scerweima1('https://www.baidu.com');

3 . QR-Code generieren (keine Bilddatei generieren)

//3. 生成原始的二维码(不生成图片文件)
function scerweima2($url=''){
  require_once 'phpqrcode.php';
  $value = $url;         //二维码内容
  $errorCorrectionLevel = 'L';  //容错级别
  $matrixPointSize = 5;      //生成图片大小
  //生成二维码图片
  $QR = QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
}
//调用查看结果
scerweima2('https://www.baidu.com');

Die ersten beiden Methoden erzeugen bei jedem Aufruf lokal ein QR-Code-Bild. Die dritte Methode gibt den QR-Code direkt aus an den Browser übertragen, ohne eine Datei zu generieren.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln zum Thema PHP chinesische Website!

Empfohlene Lektüre:

Detaillierte Erklärung der mysqld_multi-Bereitstellung auf einem einzelnen Computer

Zusammenfassung einiger MySQL-Fallstricke

So bedienen Sie Tabellen in Bootstrap

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der phpqrcode-Klasse zum Generieren von QR-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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