본문 바로가기

Code-note

[프로젝트]QR code 생성기 -python

나만의 QR 코드를 만드는 방법

import qrcode
from PIL import Image
import random
pip install qrcode
pip install pillow
pip install random

# 필요한 모듈을 불러오는 단계 : 해당 모듈이 불러와 지지 않는 경우 설치되었는지 확인한다. 

# QR 코드 생성
qr = qrcode.QRCode(
    version=random.randrange(5,10),  # QR 코드 버전 (1-40), 높을수록 더 많은 데이터 저장 가능
    error_correction=qrcode.constants.ERROR_CORRECT_Q,  # 오류 수정 수준 (L, M, Q, H)
    box_size=20,  # 각 박스의 크기
    border=3,  # QR 코드 외곽의 여백 (기본값 4)
)

# URL 데이터 추가
qr.add_data('https://from-biology.tistory.com/')
qr.make(fit=True)  # QR 코드를 데이터에 맞게 조정

# QR 코드 생성의 기본 정보를 설정

-  ERROR_CORRECT: 오류 수정 수준으로, L-M-Q-H는 각각 7-15-25-30% 이하의 오류가 수정될 수 있음을 의미한다.

(예를 들어 ERROR_CORRECT_M일때, QR 코드가 15% 까지 회손되는 것은 인식에 문제를 주지 않는다.)

-  version:  QR코드의 복잡성을 의미하고, 많은 데이터를 코드에 저장해야 할때 값을 올려 많은 데이터를 저장한다. 

ERROR_CORRECT

# 기본 설정 이미지
img = qr.make_image()
img.save('result/qr_simple.png')

# 가장 기본적인 형태의 qr 코드를 생성

qr_simple.png

# 색깔 변화
img = qr.make_image(fill_color="red", back_color="black")
img.save('result/qr_color.png')

# 앞에서 생성한 qr 코드를 원하는 색상으로 지정

qr_color.png

# img를 RGB값으로 변환
img = img.convert('RGB')

# logo 이미지 열기
logo = Image.open('호랑이이모티콘.png') 

# logo 사이즈 조정
qr_width, qr_height = img.size
logo_size = int(qr_width * 0.3)
logo = logo.resize((logo_size,logo_size))

# QR코드위에 올릴 로고 이미지 파일을 불러옴.

호랑이이모티콘.png

# 로고 이미지 위치 조정 : 중앙 배치
logo_position = ((qr_width - logo_size)//2, (qr_height - logo_size)//2)
img.paste(logo, logo_position, mask=logo)

# 최종 이미지 저장
img.show()
img.save('result/qr_logo.png')

# 위치를 지정하여 logo와 qr코드를 합침

qr_logo.png

 

[참고자료]

https://kincoding.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-QR-%EC%BD%94%EB%93%9C-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0ft-qrcode-%EB%AA%A8%EB%93%88

 

파이썬으로 QR 코드 생성하기(ft. qrcode 모듈)

파이썬으로 QR 코드 생성하기 - ft. qrcode 모듈 업무상 QR 코드 생성할 일이 있어서, 잠시 이리 저리 짱구를 굴려보니 파이썬을 활용하면 편하겠다는 생각이 들었습니다. 파이썬으로 qrcode 생성을 위

kincoding.com

https://pypi.org/project/qrcode/

 

qrcode

QR Code image generator

pypi.org

https://qr.naver.com/create

 

네이버

네이버에 로그인 하고 나를 위한 다양한 서비스를 이용해 보세요

nid.naver.com