PHP가 phpqrcode 클래스를 기반으로 QR 코드를 생성하는 방법에 대한 자세한 설명

不言
풀어 주다: 2023-03-24 11:50:01
원래의
1720명이 탐색했습니다.

이 기사의 예에서는 PHP가 phpqrcode 클래스를 기반으로 QR 코드를 생성하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

물론 QR 코드 이미지를 생성하는 인터페이스(예: Liantu http://www.liantu.com/ 인터페이스)를 호출하는 것을 제외하고는 PHP 언어를 사용하여 QR 코드를 생성하는 것은 상당히 어렵습니다. , 정말 시작할 방법이 없습니다. 그러나 기성 클래스 파일인 phpqrcode와 PHP QR 코드 생성 클래스 라이브러리를 사용하면 QR 코드를 쉽게 생성할 수 있습니다.

준비:

1. phpqrcode 클래스 파일을 다운로드하세요. 다운로드 주소는 https://sourceforge.net/projects/phpqrcode/
2. PHP 환경은 GD2 확장 라이브러리 지원을 활성화해야 합니다(일반적으로 활성화되어 있습니다)

방법 해석:

다운로드한 클래스 파일은 압축된 패키지로, 많은 파일과 데모 프로그램이 포함되어 있습니다. QR 코드를 생성하려면 내부에 phpqrcode.php 파일만 있으면 됩니다. 여러 클래스의 모음 파일입니다. 내부의 QRcode 클래스(라인 2963)의 png() 메서드(라인 3090)를 사용해야 합니다.

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);
}
로그인 후 복사

첫 번째 매개변수$text: QR 코드에 포함된 콘텐츠(링크, 텍스트, json 문자열 등)
두 번째 매개변수$outfile: 기본값은 false이며 파일이 생성되지 않습니다. QR 코드는 코드 이미지가 출력으로 반환됩니다. 그렇지 않으면 생성된 QR 코드 이미지를 저장할 파일 이름과 경로를 지정해야 합니다.
세 번째 매개변수$level: 기본값은 L이며 해당 값은 다음과 같습니다. L(QR_ECLEVEL_L, 7%) , M(QR_ECLEVEL_M, 15%), Q(QR_ECLEVEL_Q, 25%), H(QR_ECLEVEL_H, 30%)에 대해 전달할 수 있는 매개변수는 QR 코드의 오류 허용 비율을 제어합니다. . 다양한 매개변수는 QR 코드가 덮일 수 있는 영역의 비율을 나타냅니다. 즉, 덮힌 영역도 식별할 수 있습니다.
4번째 매개변수$size: 생성된 이미지의 크기를 제어합니다. 기본값은 4입니다. 5번째 매개변수
$margin: QR 코드 생성을 위한 빈 영역의 크기를 제어합니다. 4번째 매개변수
$size 6개의 매개변수 $saveandprint

: QR 코드 이미지를 저장하고 표시합니다. $outfile은 이미지를 전달해야 합니다. 경로;

사용 예:

1. QR코드 생성 (사진파일 생성)

// 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 &#39;<img src="qrcode.png" alt="使用微信扫描支付">&#39;;
}
//调用查看结果
echo scerweima(&#39;https://www.baidu.com&#39;);
로그인 후 복사

2. 생성된 QR코드에 로고 추가 (이미지 파일 생성)

//2. 在生成的二维码中加上logo(生成图片文件)
function scerweima1($url=&#39;&#39;){
  require_once &#39;phpqrcode.php&#39;;
  $value = $url;         //二维码内容
  $errorCorrectionLevel = &#39;H&#39;;  //容错级别
  $matrixPointSize = 6;      //生成图片大小
  //生成二维码图片
  $filename = &#39;qrcode/&#39;.microtime().&#39;.png&#39;;
  QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
  $logo = &#39;qrcode/logo.jpg&#39;; //准备好的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, &#39;qrcode.png&#39;);
  imagedestroy($QR);
  imagedestroy($logo);
  return &#39;<img src="qrcode.png" alt="使用微信扫描支付">&#39;;
}
//调用查看结果
echo scerweima1(&#39;https://www.baidu.com&#39;);
로그인 후 복사

PHP가 phpqrcode 클래스를 기반으로 QR 코드를 생성하는 방법에 대한 자세한 설명

3. QR 코드 생성(이미지 파일 없음)

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

처음 두 가지 방법은 호출될 때마다 로컬로 QR 코드 이미지를 생성합니다. 세 번째 방법은 파일을 생성하지 않고 QR 코드를 브라우저에 직접 출력합니다.

위 내용은 PHP가 phpqrcode 클래스를 기반으로 QR 코드를 생성하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!