프로그래밍 언어/Python

QR 코드에 이미지 삽입하기

· 코딩마이데이

시각화 패키지 pillow를 사용하여 QR 코드에 이미지를 삽입하는 방법을 학습합니다. QR 코드에 이미지를 삽입하면 시각적으로 더 매력적으로, 브랜드 로고나 픽토그램 등 중요한 이미지를 함께 공유할 수 있어 직관적이면서도 보기 좋은 모습으로 만들 수 있습니다.

 

QR 코드에 이미지 삽입하기: qrcode 패키지 활용

qrcode 패키지의 QRCode 클래스는 QR 코드의 스타일을 지정하는 다양한 명령어를 제공합니다. 여기서는 함수 make_image()를 사용해 QR 코드에 전화 아이콘을 삽입하고, 이를 통해 QR 코드가 연락처를 저장하고 있음을 표현해 보겠습니다. 전화 아이콘은 'input' 폴더에 'phone.png'를 사용합니다.

qrcode 패키지를 사용해 이미지를 삽입하려면 QRCode 클래스와 더불어 StyledPilImage 클래스가 필요합니다. StyledPilImage는 서식이 적용된 PNG 이미지 객체로, QR 코드에 이미지를 삽입하기 위한 다양한 옵션을 제공합니다.

비주얼 스튜디오 코드에서 새로운 파일을 만들고, 파일 명을 'step_3_1.py'로 지정하세요. 이래 코드를 입력한 뒤, 대화형 창에서 실행하세요. QR 코드 가운데 전화 아이콘의 삽입된 이미지가 출력됩니다.

from qrcode.image.styledpil import StyledPilImage # 01
from qrcode.main import QRCode # 02
from step_1_1 import IN_DIR # 이전에 작성한 모듈을 불러옵니다.
from step_2_2 import OUT_2_2_VCF

with open(OUT_2_2_VCF, encoding="utf-8") as fp:
    vcf = fp.read()

qr = QRCode() # 09
qr.add_data(vcf) # 10
img = qr.make_image( # 11
    image_factory=StyledPilImage, # 12
    embeded_image_path=IN_DIR / "phone.png" # 13
) # 14
img

 

실행결과

 

01 qrcode.image.styledpil 모듈의 StyledPilImage 클래스를 불러옵니다.

02 qrcode.main 모듈의 QRCode 클래스를 불러옵니다.

09 QRCode 클래스의 객체를 생성하고 변수 qr에 저장합니다.

10 함수 add_data()를 호출하여 vcf 변수에 저장된 VCF 데이터를 QRCode 객체에 추가합니다.

11~14 함수 make_image()로 QRCode 객체를 QR 코드로 만듭니다. 이때 매개변수 image_factory에 StylePilImage 클래스, embeded_imagepath에 이미지의 경로를 전달해서 QR 코드에서 이미지를 삽입합니다.