def showqrcode(w, treeview, liststore): path, col = treeview.get_cursor() if not path: return address = liststore.get_value(liststore.get_iter(path), 0) qr = pyqrnative.QRCode(4, pyqrnative.QRErrorCorrectLevel.H) qr.addData(address) qr.make() boxsize = 7 size = qr.getModuleCount() * boxsize def area_expose_cb(area, event): style = area.get_style() k = qr.getModuleCount() for r in range(k): for c in range(k): gc = style.black_gc if qr.isDark(r, c) else style.white_gc area.window.draw_rectangle(gc, True, c * boxsize, r * boxsize, boxsize, boxsize) area = gtk.DrawingArea() area.set_size_request(size, size) area.connect("expose-event", area_expose_cb) area.show() dialog = gtk.Dialog(address, parent=self.window, flags=gtk.DIALOG_MODAL | gtk.DIALOG_NO_SEPARATOR, buttons=("ok", 1)) dialog.vbox.add(area) dialog.run() dialog.destroy()
def QRcode(data_string, file_name=None): #import os quality = { 1: pyqrnative.QRErrorCorrectLevel.L, 2: pyqrnative.QRErrorCorrectLevel.M, 3: pyqrnative.QRErrorCorrectLevel.Q, 4: pyqrnative.QRErrorCorrectLevel.H } size = 4 level = 1 file_name = file_name or "1111.png" while 1: #print size try: q = pyqrnative.QRCode(size, quality[level]) q.addData(data_string) q.make() break except TypeError: size += 1 x = q.makeImage() #qr_file = os.path.join('C:/web2py/applications/ipay10/static', file_name) qr_file = file_name img_file = open(qr_file, 'wb') x.save(img_file, 'PNG') img_file.close()
def update_qr(self): if self.addr and not self.qr: for size in range(len(pyqrnative.QRUtil.PATTERN_POSITION_TABLE)): # [4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]: try: self.qr = pyqrnative.QRCode(size, pyqrnative.QRErrorCorrectLevel.L) self.qr.addData(self.addr) self.qr.make() break except: self.qr=None continue self.update()
def make_bitmap(addr): # fixme: this is highly inefficient droid.dialogCreateSpinnerProgress("please wait") droid.dialogShow() try: import pyqrnative, bmp qr = pyqrnative.QRCode(4, pyqrnative.QRErrorCorrectLevel.L) qr.addData(addr) qr.make() k = qr.getModuleCount() assert k == 33 bmp.save_qrcode(qr, "/sdcard/sl4a/qrcode.bmp") finally: droid.dialogDismiss()
def print_tx(tx): for i in range(1, 20): try: qr = qrlib.QRCode(i, 0) qr.addData(tx) qr.make() break except qrlib.CodeOverflowException: if i < 20: continue else: raise Exception("Too much data for QR Code") Q = qr.export_modules() print_qr_array(Q)
def run(self, data, version=5, ecl=0): self.qr = qrlib.QRCode(version, ecl) self.qr.addData(data) self.qr.make() Q = np.array(self.qr.export_modules()) return Q
import ugfx import math import pyqrnative # up to level 27 (125x125px) can be displayed qr = pyqrnative.QRCode(2, pyqrnative.QRErrorCorrectLevel.Q) qr.addData("https://sha2017.org/") qr.make() max_x = max_y = qr.getModuleCount() matrix = qr.modules disp_x, disp_y = (296, 128) block_size = math.floor(disp_y / max_y) offset_x = int(disp_x / 2) - int(block_size * max_y / 2) offset_y = int(disp_y / 2) - int(block_size * max_x / 2) ugfx.init() ugfx.clear(ugfx.WHITE) for y, row in enumerate(matrix): for x, col in enumerate(row): if qr.isDark(x, y): ugfx.area(offset_x + x * block_size, offset_y + y * block_size, block_size, block_size, ugfx.BLACK) ugfx.flush()