이번에는 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 '<img src="qrcode.png" alt="使用微信扫描支付">'; } //调用查看结果 echo scerweima('https://www.baidu.com');
//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. 生成二维码(不生成图片文件)
//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로 WeChat 환불 애플리케이션 구현 단계에 대한 자세한 설명
ThinkPHP WeChat 결제(jsapi 결제) 구현 단계에 대한 자세한 설명
위 내용은 phpqrcode 클래스를 기반으로 PHP를 사용하여 QR 코드를 생성하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!