Pythonista에서 QR 코드를 만들어 ui에 표시

소개



샀던 채 1년 정도(더 지도) 사용하지 않았던 Pythonista 3. 아깝기 때문에 공식 문서를 보면서 저것 이것 시험하고 있다. Qiita는 언제나 보고 있을 뿐이므로, 써 보기로 했다.

할 일 - QR 코드 만들기



iOS 앱으로 사용하고 싶기 때문에 uiView를 사용합니다. 텍스트 필드로 변환하고 싶은 문자열을 넣고 버튼을 누르면 QR 코드를 만든다.

완성 이미지





QR 코드를 만드는 방법



qrcode라는 라이브러리를 사용하면 간단하게 QR코드가 만들어진다. 그것을 console에 내는 것은, 이렇게 하면 좋기 때문에 간단.

sample.py
import qrcode

img = qrcode.make('http://flapro.net/') #ここにQRコードにしたい文字列を入れる
show.image()

ui.ImageView에 표시하려면 PIL에서 Image로 변환해야합니다.
Pythonista 공식 사이트의 포럼 에 하는 방법이 실려 있었으므로 사용하게 했다.

pil2ui.py
# pil <=> ui
def pil2ui(imgIn):
    with io.BytesIO() as bIO:
        imgIn.save(bIO, 'PNG')
        imgOut = ui.Image.from_data(bIO.getvalue())
    del bIO
    return imgOut

완성된 소스



qr.py

import ui
import io
from PIL import Image 
import qrcode

def getQR(sender):
    img = pil2ui(qrcode.make(sender.superview['textfield'].text))
    sender.superview['imageView'].image = img

# pil <=> ui
def pil2ui(imgIn):
    with io.BytesIO() as bIO:
        imgIn.save(bIO, 'PNG')
        imgOut = ui.Image.from_data(bIO.getvalue())
    del bIO
    return imgOut

v = ui.load_view()
v.present('sheet')


참고


  • 공식 포럼 How Can I convert a PIL to a ui.Image?
  • 공식 문서 qrcode
  • 좋은 웹페이지 즐겨찾기