はじめに
買ったまま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')