개발 꿀팁/PYTHON

파이썬을 사용하여 멋진 QR 코드를 생성하고 해석하는 방법

Jammie 2022. 11. 30. 15:23
반응형

QR 코드를 생성하고 분석하는 데 사용되는 파이썬 라이브러리는 qrcode, myqr 및 zxing이며 설치는 pipinstall qrcode/myqr/zxing을 통해 가능합니다.

생성
QR 코드를 생성하는 Python 라이브러리는 qrcode, myqr이며, 다음은 예를 통해 살펴보겠습니다.

1. 방식 1
qrcode 라이브러리는 비교적 간단한 QR 코드를 생성할 수 있으며 빠른 속도, 적은 공간, 편리한 온라인 생성의 장점이 있습니다

import qrcode
​
# QR코드 내용(링크 주소 또는 텍스트)
data = 'https://www.baidu.com/'
# QR코드 생성
img = qrcode.make(data=data)
# QR코드 보이기
img.show()
# QR코드 저장
# # img.save('qr.jpg')

효과는 다음과 같다

우리는 위에 있는 것이 가장 기본적인 QR 코드임을 알 수 있으며, 다음은 간단하게 미화하겠습니다

import qrcode
​
'''
version: QR 코드의 격자 행렬 크기, 1부터 40까지 가능, 1은 최소 21*21, 40은 177*177
error_correction: QR코드 오류 허용률, 기본 ERROR_CORRECT_M, 15% 미만의 오류 허용률
box_size: QR 코드의 각 작은 칸에 포함된 픽셀 수
border: 사진 테두리까지 QR 코드의 작은 격자 수, 기본값은 4입니다.
'''
qr = qrcode.QRCode(
version=2,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=15,
border=3,
)
# QR코드 콘텐츠
data = 'https://www.baidu.com/'
qr.add_data(data=data)
# QR 코드 색상 설정 사용하기
qr.make(fit=True)
img = qr.make_image(fill_color='blue', back_color='white')
# QR코드 보이기
img.show()

효과는 다음과 같다

2. 방식 2
만약 우리가 좀 더 멋진 QR코드를 만들려면 myqr 라이브러리를 사용할 수 있지만 온라인 사용에 적합하지 않다는 단점도 있습니다.

레귤러 스타일

우리 남편은 기본 QR코드를 만듭니다

from MyQR import myqr
​
'''
words: 내용
version: 내결함율
save_name: 저장된 이름
'''
myqr.run(words='https://www.baidu.com/',
version=1,
save_name='myqr.png')

효과는 다음과 같다

리본 스타일

우리는 이어서 그림이 있는 QR코드를 생성했습니다

from MyQR import myqr
​
'''
picture: QR코드를 생성하는 데 사용되는 그림
colorized: False는 흑백, True는 컬러
'''
myqr.run(words='https://www.baidu.com/',
version=1,
picture='bg.jpg',
colorized=True,
save_name='pmyqr.png')

효과는 다음과 같다

동적 스타일

마지막으로 동적 QR 코드를 생성합니다

from MyQR import myqr
​
myqr.run(words='https://www.baidu.com/',
         version=1,
         picture='my.gif',
         colorized=True,
         save_name='myqr.gif')

효과는 다음과 같다.

 

해석
zxing 라이브러리는 QR 코드를 해석하는 데 사용되는데, 예를 통해 살펴보겠습니다

import zxing
​
reader = zxing.BarCodeReader()
barcode = reader.decode('myqr.gif')
print(barcode.parsed)

기존 QR 코드를 미화해야 하는 경우 다음 두 단계만 수행하면 됩니다.

기존 QR 코드를 해석하여 해석 내용을 얻다
해석된 내용을 이용하여 새로운 QR코드를 생성하다
예를 들어, 다음과 같은 QR 코드를 예로 들면 우리는 이를 분석하고 새로운 QR 코드를 생성합니다

import zxing
from MyQR import myqr
​
reader = zxing.BarCodeReader()
barcode = reader.decode('gzh.jpg')
myqr.run(words=str(barcode.parsed),
         version=1,
         picture='my.gif',
         colorized=True,
	 save_name='gmyqr.gif')

효과는 다음과 같다

이렇게 하면 원래 QR코드를 스캔하는 것이 새로 생성된 QR코드와 구체적으로 동일한 효과를 볼 수 있습니다

 

반응형