>  기사  >  백엔드 개발  >  phpqrcode 클래스는 QR 코드 메소드를 생성합니다.

phpqrcode 클래스는 QR 코드 메소드를 생성합니다.

小云云
小云云원래의
2018-03-16 10:28:361532검색

QR 코드 이미지를 생성하기 위해 인터페이스를 호출하는 것 외에는 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입니다.
$margin: 이미지의 크기를 제어합니다. 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. 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 코드를 브라우저에 직접 출력합니다.


관련 권장사항:

phpqrcode 클래스 라이브러리를 사용하여 QR 코드 예제 코드 생성

Laravel은 PHPQRCODE를 사용하여 LOGO

phpqrcode를 사용하여 QR 코드 예제 code_PHP 튜토리얼을 생성합니다

위 내용은 phpqrcode 클래스는 QR 코드 메소드를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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