Python

[Python] 파이썬에서 QR코드를 생성하는 방법 및 예제(example)

파이썬에 2차원 바코드 QR코드를 만들기 위해서는 qrcode 모듈을 설치해야합니다. 그럼 아주 간단하게 생성할 수 있습니다. QR코드는 바코드 보다 많은 내용을 담을 수 있다고 합니다.

qrcode 모듈 설치

pip install qrcode 명령어를 실행하여 설치합니다.

Microsoft Windows [Version 10.0.19042.685]
(c) 2020 Microsoft Corporation. All rights reserved.

C:Usersilike>pip install qrcode
Collecting qrcode
  Downloading qrcode-6.1-py2.py3-none-any.whl (31 kB)
Requirement already satisfied: six in c:usersilikeappdataroamingpythonpython39site-packages (from qrcode) (1.15.0)
Requirement already satisfied: colorama in c:usersilikeappdataroamingpythonpython39site-packages (from qrcode) (0.4.4)
Installing collected packages: qrcode
Successfully installed qrcode-6.1

C:Usersilike>

 

QR코드 생성

기본 적인 예로 qrcode모듈을 임포트 후 make()함수를 통하여 qr코드에 담을 메모나 url를 데이터로 전달합니다.

PilImage 타입으로 객체를 생성해줍니다. pil 모듈의 save()함수를 통해서 이미지 파일로 저장합니다.

import qrcode 

# 첫번째 예제
img = qrcode.make("굿바이2020!! 내년에는 코로나 없는 세상이 다시 찾아왔으면 좋겠습니다.")
img.save("C:/python/goodbye2020.png")
print(type(img))
print(img.size)


# 두번째 예제
img_url = qrcode.make("https://www.google.com/maps")
img_url.save("C:/python/googlemap.png")
print(img_url.size)


#실행결과
<class 'qrcode.image.pil.PilImage'>
(490, 490)
(370, 370)

 

이미지를 저장한 폴더를 열어서 확인하면 아래와 같은 2개의 QR코드 이미지가 각각 생성됩니다.


연말에 친구들에게 QR코드에 메세지를 담아서 보내보면 어떨까요? 잼있어 보이지 않나요? 일반 URL를 QR코드로 생성하면 별도의 QR코드 인식하는 앱 없이도 휴대폰 카메라를 켜고 들이대면 url링크가 카메라 화면 아래에 나타나서 클릭하면 이동할 수 있어요. 하지만 그외에 글자는 별도의 QR코드 앱을 설치해야 합니다. 카카오톡 QR코드에서도 인식되지 않네요.

 

아래 방법은 PIL 모듈을 사용하여 썸네일 이미지를 QR코드 생성시 붙여넣을 수 있어요.

IU인스타그램 링크를 QR코드 내용에 담고 , 아이유 사진을 썸내일 하나 만들어서 QR코드의 가운데에 위치시켰어요.

PIL모듈이 설치되지않았다면 pip install PIL 명령어를 실행하여 설치하세요. 파이참 툴을 사용중이라면 from PIL import Image 위에 마우스 커서 올리면 설치 옵션이 나타나니 클릭하세요.

import qrcode
from PIL import Image

iu_img = Image.open('C:/Users/ilike/Pictures/IU_400x400.jpg')  # .crop((150, 40, 235, 150))

#썸내일 만들기
iu_img.thumbnail((60, 60))
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H)
qr.add_data('https://www.instagram.com/dlwlrma/')
qr.make()
iu_instagram = qr.make_image().convert('RGB')

#이미지 가운데 위치시키기
pos = ((iu_instagram.size[0] - iu_img.size[0]) // 2, (iu_instagram.size[1] - iu_img.size[1]) // 2)

iu_instagram.paste(iu_img, pos)
iu_instagram.save('C:/python/iuqr.png')
#print(iu_instagram.size)


네이버 사이트에서 QR코드를 생성할 수 있으니 참고하세요. 업무적으로 접근해야한다면 파이썬으로 자동화하세요.

qr.naver.com/

 

네이버 :: 휴대폰의 모든 것, 네이버 QR코드

새로운 정보저장 공안 2차원 바코드 QR코드 QR코드는 사진, 동영상, 지도, 링크 등의 정보를 담아 코드를 생성하여 공유할 수 있도록 지원해주는 서비스입니다. 나만의 QR코드 만들기 내 코드 관리

qr.naver.com

 

[REFERENCE]

medium.com/better-programming/how-to-generate-and-decode-qr-codes-in-python-a933bce56fd0

pypi.org/project/qrcode/

 

Leave a Reply

error: Content is protected !!