인프런 커뮤니티 질문&답변
web_qrmaker.py
작성
·
382
퀴즈
QR 코드의 오류 수정 레벨(L, M, Q, H)이 가지는 주요 목적은 무엇일까요?
QR 코드의 데이터 저장 용량을 늘리기 위함이다.
QR 코드의 물리적인 크기를 결정하기 위함이다.
QR 코드가 손상되어도 데이터를 복구할 수 있도록 돕기 위함이다.
QR 코드 인코딩 방식을 지정하기 위함이다.
답변 3
0
0
png_as_base64_str()가 deprecate 되었다고 하시는 거보니
pyqrcode 라이브러리가 아닌 pyqrcodeng 라이브러리를 사용하고 계신가 아닌가 생각됩니다.
그림에서 처럼 현재 python 3.10.2 버전 pyqrcode 던 pyqrcodeng 던 둘다 사용하는데 문제는 없어 보입니다.
문서상에는 deprecate 되었다고 하나 현재 버전에서 사용은 잘 되고 있습니다만 강좌에서는 pyqrcode로 작성되었기 때문에 라이브러리 차이에 따른 다른 문제가 발생하는 부분에 대해서 모두 확인할수는 없을듯 합니다.
문서상 png_as_base64_str() 함수는 png_data_uri() 함수로 대체 된다고 하니 [pyqrcodeng 공식문서] 를 참고 해보시는것도 좋을듯 합니다. 위 그림의 선택영역을 보면 png_data_uri() 함수는 "data: image/png;base64," 를 포함해서 리턴해주므로 강좌의 코드에서 이 부분을 맞게 수정해야 할 것으로 보입니다. 아니면 강좌처럼 똑같이 나오게 하려면
b = qrcode.png_data_uri(scale=5).replace("data:image/png;base64,", "")
이런식으로 replace 해서 문자열을 없애버리는 방법도 있을것 같습니다.
더 궁금하신 사항이 있으시면 새로운 질문을 남겨주시면 감사하겠습니다. 그래야 저한테 알림이 오거든요 ㅎㅎ
0
"파이썬에서 QR 코드 생성해보기" 강의에서 말씀드린 내용인데 놓치셨나 봅니다.
pyqrcode 에서 png 관련 기능을 사용하기 위해선 pypng 라이브러리가 설치 되어있어야 합니다.
pip install pypng
로 설치하시면 됩니다.






현재 사용은 가능하니 그냥 쓰셔도 되고 함수를 변경하면 위에서 처럼 replace() 를 통해 변경해서 사용하시면 될 듯 합니다. 더 궁금하신 사항은 언제든 질문 주시기 바랍니다.