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 '<img src="qrcode.png" alt="使用微信扫描支付">'; } //调用查看结果 echo scerweima('https://www.baidu.com');
2. 생성된 QR 코드에 로고 추가(이미지 파일 생성)
//2. 在生成的二维码中加上logo(生成图片文件) function scerweima1($url=''){ require_once 'phpqrcode.php'; $value = $url; //二维码内容 $errorCorrectionLevel = 'H'; //容错级别 $matrixPointSize = 6; //生成图片大小 //生成二维码图片 $filename = 'qrcode/'.microtime().'.png'; QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2); $logo = 'qrcode/logo.jpg'; //准备好的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, 'qrcode.png'); imagedestroy($QR); imagedestroy($logo); return '<img src="qrcode.png" alt="使用微信扫描支付">'; } //调用查看结果 echo scerweima1('https://www.baidu.com');
3. QR 코드 생성(이미지 파일 생성 안 함)
//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');처음 두 가지 방법은 호출될 때마다 로컬로 QR 코드 이미지를 생성하고, 세 번째 방법은 파일을 생성하지 않고 QR 코드를 브라우저에 직접 출력합니다.
phpqrcode 클래스 라이브러리를 사용하여 QR 코드 예제 코드 생성
phpqrcode를 사용하여 QR 코드 예제 code_PHP 튜토리얼을 생성합니다
위 내용은 phpqrcode 클래스는 QR 코드 메소드를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!