>백엔드 개발 >PHP 튜토리얼 >phpqrcode 클래스를 기반으로 PHP를 사용하여 QR 코드를 생성하는 단계에 대한 자세한 설명

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

php中世界最好的语言
php中世界最好的语言원래의
2018-05-18 11:11:251905검색

이번에는 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=''){
  require_once 'phpqrcode.php';
  $value = $url;         //二维码内容
  $errorCorrectionLevel = 'L';  //容错级别
  $matrixPointSize = 5;      //生成图片大小
  //生成二维码图片
  $QR = QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
}
//调用查看结果
scerweima2('https://www.baidu.com');
이 기사의 사례를 읽으신 후 방법을 익히셨을 것으로 예상됩니다. 더 흥미로운 정보를 보려면 PHP 중국어의 다른 관련 기사를 주목하세요. 웹사이트!

추천 도서:

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

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

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

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