Pythonista で QRコードを作ってuiに表示する
はじめに
買ったまま1年ぐらい(もっとかも)使ってなかった Pythonista 3。もったいないので公式ドキュメントをみながらあれこれ試してる。Qiitaはいつも見てるばかりなので、書いてみることにした。
やること - QRコードを作る
iOSアプリとして使いたいのでuiViewを使う。テキストフィールドに変換したい文字列をいれて、ボタンを押すとQRコードを作る。
完成イメージ
QRコードの作り方
qrcodeというライブラリを使うと簡単にQRコードがつくれる。それをconsoleに出すのは、こうやればいいので簡単。
import qrcode
img = qrcode.make('http://flapro.net/') #ここにQRコードにしたい文字列を入れる
show.image()
ui.ImageViewに表示するには、PILからImageに変換する必要がある。
Pythonista公式サイトのフォーラムにやりかたが載っていたので使わせてもらった。
# 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')
参考
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')
Author And Source
この問題について(Pythonista で QRコードを作ってuiに表示する), 我々は、より多くの情報をここで見つけました https://qiita.com/kermit71/items/8212028db5fccc9f27fe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .