>  기사  >  백엔드 개발  >  PHP를 사용하여 로고 이미지로 QR 코드를 생성하는 두 가지 방법

PHP를 사용하여 로고 이미지로 QR 코드를 생성하는 두 가지 방법

小云云
小云云원래의
2018-03-30 11:57:331972검색

이 글은 주로 PHP에서 로고 이미지로 QR 코드를 생성하는 두 가지 방법을 텍스트와 코드 형식으로 공유합니다.

1. Google API를 사용하여 QR 코드 생성
Google은 API 인터페이스를 호출하는 것이 매우 간단합니다.

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


2. library PHP QR Code는 QR 코드를 생성합니다

PHP QR Code는 QR 코드를 쉽게 생성하는 데 사용할 수 있는 PHP QR 코드 생성 라이브러리입니다. 공식 웹사이트에서는 다운로드 및 여러 데모 데모를 제공합니다: http://phpqrcode.sourceforge. .그물/.
공식 웹사이트에서 제공하는 클래스 라이브러리를 다운로드한 후 phpqrcode.php만 사용하면 QR 코드를 생성할 수 있습니다. 물론 PHP 환경이 GD2 지원을 활성화해야 합니다. phpqrcode.php는 중요한 png() 메소드를 제공합니다. 여기서 매개변수 텍스트는 두 자리 정보 텍스트의 생성을 나타냅니다. 매개변수 outfile은 QR 코드 이미지 출력 여부를 나타냅니다. 파일, 기본값은 no입니다. 매개변수 수준은 내결함성 비율을 나타냅니다. 즉, 해당 영역은 여전히 ​​인식될 수 있습니다. 각각 L(QRECLEVELL, 7레벨은 내결함성 비율, 즉 영역이 여전히 인식될 수 있음을 나타냅니다. 각각 L (QRECLEVELL, 7size는 생성된 이미지의 크기를 나타내며 기본값은 3입니다. 매개변수 여백은 QR 코드 주변 테두리의 공백 영역의 간격 값을 나타내며 매개변수 여백은 공백의 간격 값을 나타냅니다. QR 코드 주변의 테두리 영역, saveandprint 매개변수는 QR 코드를 저장하고 표시할지 여부를 나타냅니다.

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

PHP QR 코드를 호출하면 다음 코드가 "http:/"라는 내용으로 QR 코드를 생성할 수 있습니다. /www.jb51.net".
Php 코드
include 'phpqrcode.php';
QRcode::png('http://www .jb51.net');

실제 응용 프로그램에서는 자체 로고를 추가합니다. 그렇다면 홍보효과를 높이기 위해 QR코드를 생성하는 방법은 사실 원리는 매우 간단합니다. PHP QR코드를 사용하여 QR코드 이미지를 생성한 후, 새로 생성된 원본 QR코드 이미지 중간에 미리 준비된 로고 이미지를 추가한 후 새로운 QR코드 이미지를 재생성하는 기능입니다.

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

다음은 위 코드에 대한 참고사항이며, 이미지 파일은 생성하지 않습니다. 통화에 편리합니다. 다음 코드를 img.php

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

로 저장하세요. QR 코드는 어느 정도 내결함성을 허용하므로 부분적으로 차단되어도 일반 QR 코드를 스캔할 때 여전히 사용할 수 있습니다. QR 코드를 사용하면 중간에도 스캔 결과를 디코딩할 수 있습니다. 이는 생성기가 내결함성을 향상하기 위해 정보의 일부를 반복적으로 표시하기 때문입니다. QR 코드는 디코딩 결과에 영향을 미치지 않습니다.

관련 권장 사항:

php는 로고가 있는 QR 코드 클래스를 구현합니다.

PHP는 WeChat QR 코드 예제를 생성합니다.

php QR 코드 코드 생성 및 다운로드 방법

위 내용은 PHP를 사용하여 로고 이미지로 QR 코드를 생성하는 두 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.