QR 코드 생성
현대 사회에서 웹사이트 링크, 연락처, 와이파이 정보 등을 간편하게 공유하기 위해 QR 코드(Quick Response Code)가 널리 사용됩니다. 파이썬의 강력한 외부 라이브러리를 활용하면 단 몇 줄의 코드만으로 사용자가 입력한 텍스트나 URL을 기반으로 고품질의 QR 코드 이미지 파일을 생성할 수 있습니다.
2. 사전 준비: 필수 라이브러리 설치
파이썬으로 QR 코드를 생성하고 이미지 파일로 저장하기 위해서는 qrcode 라이브러리와 이미지 처리를 담당하는 Pillow 라이브러리가 필요합니다.
터미널 또는 명령 프롬프트에서 아래 명령어를 실행하여 설치합니다.
pip install qrcode
pip install pillow
3. QR 코드 생성기 소스코드 구현
사용자로부터 변환할 데이터(텍스트 또는 URL)와 저장할 파일 이름을 입력받아 QR 코드를 생성하고 PNG 이미지로 저장하는 프로그램입니다.
import qrcode
def generate_qr_code(data, file_name="qrcode.png"):
# QR 코드 생성기 초기화
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
# 데이터 추가 및 자동 맞춤
qr.add_data(data)
qr.make(fit=True)
# QR 코드 이미지 생성 (전경색: 검은색, 배경색: 흰색)
img = qr.make_image(fill="black", back_color="white")
# 이미지 파일로 저장
img.save(file_name)
print(f"'{file_name}' 파일로 QR 코드가 성공적으로 저장되었습니다.")
# 사용자 입력 처리
data = input("QR 코드로 변환할 텍스트 또는 URL을 입력하세요: ")
file_name = input("저장할 파일 이름을 입력하세요 (예: qrcode.png): ")
# 파일 이름이 입력되지 않은 경우 기본값 설정
if not file_name:
file_name = "qrcode.png"
# QR 코드 생성 함수 호출
generate_qr_code(data, file_name)
4. 코드 상세 설명 및 주요 매개변수
① QR 코드 객체 초기화 (qrcode.QRCode)
-
version=1: QR 코드의 크기와 데이터 수용량을 결정하는 버전(1부터 40까지 존재)입니다. 숫자가 클수록 더 많은 데이터를 담을 수 있습니다. -
error_correction: QR 코드가 오염되거나 훼손되어도 정보를 복구할 수 있는 오류 보정 레벨을 설정합니다.-
ERROR_CORRECT_L: 약 7% 복구 가능 (가장 낮음) -
ERROR_CORRECT_M: 약 15% 복구 가능 -
ERROR_CORRECT_Q: 약 25% 복구 가능 -
ERROR_CORRECT_H: 약 30% 복구 가능 (가장 높음)
-
-
box_size=10: QR 코드를 구성하는 하나의 작은 상자(Pixel 단위)의 크기를 지정합니다. -
border=4: QR 코드 주변에 여백(Quiet Zone)으로 들어갈 상자 개수를 지정합니다 (기본 표준값은 4).
② 데이터 추가 및 생성 (qr.add_data, qr.make)
-
qr.add_data(data): 사용자가 입력한 문자열이나 웹사이트 주소(URL)를 QR 코드에 담을 데이터로 추가합니다. -
qr.make(fit=True): 입력된 데이터의 양에 맞춰 QR 코드의 크기와 버전을 자동으로 최적화합니다.
③ 이미지 생성 및 저장 (make_image, img.save)
-
make_image(fill="black", back_color="white"): 지정한 색상(기본 검은색 모듈과 흰색 배경)을 바탕으로 실제 이미지 객체를 렌더링합니다. -
img.save(file_name): 생성된 이미지를 사용자가 지정한 이름의 파일(예:.png)로 디스크에 영구 저장합니다.