phpqrcode 클래스를 기반으로 PHP를 사용하여 QR 코드를 생성하는 단계에 대한 자세한 설명

php中世界最好的语言
풀어 주다: 2023-03-26 14:10:01
원래의
1873명이 탐색했습니다.

이번에는 phpqrcode 클래스를 기반으로 PHP에서 QR 코드를 생성하는 단계에 대해 자세히 설명하겠습니다. PHP가 phpqrcode 클래스를 기반으로 QR 코드를 생성할 때의 주의 사항은 무엇입니까? 살펴보자.

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

준비:

1.phpqrcode class파일 다운로드, 다운로드 주소: https://sourceforge.net/projects/phpqrcode/
2.PHP 환경에서는 GD2 확장 라이브러리 지원을 활성화해야 합니다(일반적으로) 다음은 모두 열려있습니다)

방법 해석:

다운로드한 클래스 파일은 많은 파일과 데모 프로그램이 포함된 압축 패키지입니다. 두 번째 파일을 생성하려면 내부에 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 코드 이미지만 출력으로 반환됩니다. 그렇지 않으면 생성하기 위해 저장해야 합니다. 2D 코드 이미지 파일명 및 경로
세 번째 파라미터$level: 기본값은 L입니다. 이 파라미터로 전달할 수 있는 값은 L(QR_ECLEVEL_L, 7%), M(QR_ECLEVEL_M, 15)입니다. %), Q(QR_ECLEVEL_Q, 25%), H(QR_ECLEVEL_H, 30%), 이 매개변수는 QR 코드의 오류 허용 비율을 제어합니다. 서로 다른 매개변수는 QR 코드가 커버할 수 있는 영역의 비율, 즉
네 번째 매개변수 $size: 생성된 이미지의 크기를 제어합니다. 기본값은 4입니다.
다섯 번째 매개변수 $margin: QR 코드 생성을 위한 빈 영역의 크기를 제어합니다. ;
6번째 매개변수 $saveandprint: QR 코드 이미지 저장 그리고 표시되는 $outfile은 이미지 경로를 전달해야 합니다.

사용 예:

1.

// 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;);3. 生成二维码(不生成图片文件)
로그인 후 복사
//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;);
로그인 후 복사
이 기사의 사례를 읽으신 후 방법을 익히셨을 것으로 예상됩니다. 더 흥미로운 정보를 보려면 PHP 중국어의 다른 관련 기사를 주목하세요. 웹사이트!

추천 도서:

PHP로 WeChat 환불 애플리케이션 구현 단계에 대한 자세한 설명

ThinkPHP WeChat 결제(jsapi 결제) 구현 단계에 대한 자세한 설명

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

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