반응형
phpqrcode 라이브러리 다운로드
실용 composer 다운로드 가능
phpqrcode.php 파일을 프로젝트에 넣으십시오. 다른 파일은 원하지 않아도 됩니다.
주로 png() 방법을 사용하여 QR코드를 생성한다
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);
}
QR코드 1 생성
<?php
/**
* Created by PhpStorm.
* User: xym
* Date: 2018/7/31
* Time: 오전9:58
* 로컬에서 그림 파일 생성
*/
function createQr($url=''){
require_once 'phpqrcode.php';
$value = $url; //QR코드 내용
$errorCorrectionLevel = 'L'; //오류 허용 등급
$matrixPointSize = 5; //그림 크기 생성
//QR코드 이미지 생성
$filename = 'local'.microtime().'.png';
QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
$QR = $filename; //생성된 원본 QR코드 그림 파일
$QR = imagecreatefromstring(file_get_contents($QR));
//그림을 출력하다
imagepng($QR, 'qrcode.png');
imagedestroy($QR);
return '<img src="qrcode.png" alt="위챗스캔으로 결제하기">';
}
//결과 보기 호출
echo createQr('http://www.zhenjinedu.cn/');
2.로그가 있는 QR코드 이미지 생성
<?php
/**
* Created by PhpStorm.
* User: xym
* Date: 2018/7/31
* Time: 오후9:34
* QR 밴드 로고 생성
*/
function createQr($url=''){
require_once 'phpqrcode.php';
$value = $url; //QR코드 내용
$errorCorrectionLevel = 'H'; //오류 허용 등급
$matrixPointSize = 7; //그림 크기 생성
//QR코드 이미지 생성
$filename = 'pic'.microtime().'.png';
QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
$logo = 'logo.JPG'; //준비된 로고 이미지
$QR = $filename; //생성된 원시 QR 그림
if (file_exists($logo)) {
$QR = imagecreatefromstring(file_get_contents($QR)); //대상 이미지 연결 리소스。
$logo = imagecreatefromstring(file_get_contents($logo)); //원본 이미지 연결 리소스。
$QR_width = imagesx($QR); //QR코드 폭
$QR_height = imagesy($QR); //QR코드 이미지 높이
$logo_width = imagesx($logo); //로고 이미지 너비
$logo_height = imagesy($logo); //로고 이미지 높이
$logo_qr_width = $QR_width / 4; //조합 후 로고 너비 (QR코드의 1/5)
$scale = $logo_width/$logo_qr_width; //logo의 폭 스케일링 비율 (자체 폭/결합 후 폭)
$logo_qr_height = $logo_height/$scale; //조합해서 로고 높이
$from_width = ($QR_width - $logo_qr_width) / 2; //조합 후 로고 왼쪽 상단 좌표점
//그림 재구성 및 크기 조정
/*
* imagecopyresampled() 이미지(소스 이미지)의 정사각형 영역을 다른 이미지로 복사
*/
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);
}
//그림을 출력하다
imagepng($QR, 'qrcode_pay.png');
imagedestroy($QR);
imagedestroy($logo);
return '<img src="qrcode_pay.png" alt="위챗스캔으로 결제하기">';
}
//결과 보기 호출
echo createQr('http://www.zhenjinedu.cn/');
3. 생성된 이미지는 브라우저에서만 출력
<?php
/**
* Created by PhpStorm.
* User: xym
* Date: 2018/7/31
* Time: 오후9:42
* QR코드 이미지는 브라우저로만 출력되며 로컬에서 이미지 파일이 생성되지 않습니다
*/
function createQr($url=''){
require_once 'phpqrcode.php';
$value = $url; //QR코드 내용
$errorCorrectionLevel = 'L'; //오류 허용 등급
$matrixPointSize = 5; //그림 크기 생성
//QR코드 이미지 생성
$QR = QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
}
//결과 보기 호출
createQr('http://www.zhenjinedu.cn/');
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
맥 업그레이드 PHP 버전 (0) | 2022.07.28 |
---|---|
Ajax+PHP 기반 단일 파일, 다중 파일 비동기 업로드 인스턴스 (0) | 2022.07.28 |
우분투 20.04 php 5.6, nginx, mysql 환경 구축 과정 (0) | 2022.07.28 |
PHP에서의 라우팅과 rewrite 사용 (0) | 2022.07.28 |
php 자동 로딩 메커니즘 구현 (0) | 2022.07.27 |