def versao_full(self, nome_img='qr_complexo'): nome_img += '.png' qr = QRCode(version=20, error_correction=ERROR_CORRECT_L) qr.add_data(self.__msg) qr.make() im = qr.make_image() im.save(self.__caminho_img + nome_img)
def register(): if request.method == 'POST': print 'Username: '******'Username'] print 'Password: '******'Password'] # Connect to database db = sqlite3.connect('google_authenticator.db') cursor = db.cursor() # Create secret and add user to database secret = base64.b32encode(os.urandom(10)).decode('utf-8') query = 'INSERT INTO USERS (USER, PASSWORD, GOOGLEAUTH) VALUES (\"' + request.form['Username'] + '\",\"' + request.form['Password'] + '\",\"' + secret + '\");' cursor.execute(query) db.commit() db.close() # Create unique QR code given secret, label, and issuer auth = OtpAuth(secret) secret_uri = auth.to_uri('totp', GALabel, GAIssuer) qr = QRCode() qr.add_data(secret_uri) qr.make() img = qr.make_image() #img.show() # Opens tmp QR code image print 'Secret: ', secret print 'Secret Uri: ', secret_uri # Display QR code in web browser return redirect(getQRCodeGoogleUrl(secret_uri)) return "Nothing to see here."
def create_qrcode(self, username): """ 创建二维码,用于google auth扫码 :param username: 用户名字 :return: """ '''二维码保存位置''' filepath = Base_DIR + '/static/google_auth/' # 根据username获取secert_key secret_key = auth_orm.get_user_secret_key(username) data = pyotp.totp.TOTP(secret_key).provisioning_uri( username, issuer_name='YangHongFeiTest') qr = QRCode(version=1, error_correction=constants.ERROR_CORRECT_L, box_size=6, border=4) try: qr.add_data(data) qr.make(fit=True) img = qr.make_image() print('QRCode Path:', filepath + username + '.png') img.save(filepath + username + '.png') return type except Exception as e: print(e)
def get_qrcode(user): if not user.qrcode: user.qrcode = pyotp.random_base32() user.save() file_name = str(aes.encrypt(user.qrcode), encoding='utf-8') file = settings.QCODE_ROOT + '/' + file_name + '.png' if not os.path.exists(file): data = pyotp.totp.TOTP(user.qrcode).provisioning_uri( user.username, issuer_name="devEops") qr = QRCode( version=1, error_correction=constants.ERROR_CORRECT_L, box_size=6, border=4, ) try: qr.add_data(data) qr.make(fit=True) img = qr.make_image() img.save(file) return '/media/qrcode/' + file_name + '.png' except Exception as e: return '/media/qrcode/' + file_name + '.png' else: return '/media/qrcode/' + file_name + '.png'
def register(): form = RegistrationForm(request.form) if request.method == 'POST' and form.validate_on_submit(): #user = User(form.first_name.data, form.last_name.data, form.username.data, # form.username.data, form.email.data, form.enrollment.data, # form.college_name.data) user = User() form.populate_obj(user) #user.password = generate_password_hash(user.password) user.qr_data = sha1(user.email).hexdigest() qr = QRCode(version=10, error_correction=ERROR_CORRECT_H) qr.add_data(user.qr_data) qr.make() # Generate the QRCode itself #im contains a PIL.Image.Image object im = qr.make_image() # To save it im.save("qr.png") #db_session.add(user) sendmail(user.email) db.session.add(user) db.session.commit() return render_template('register.html',isreg=True) return render_template('register.html', form=form, isreg=False)
def parse_add(datafile, event_id): csvFile = open(datafile) fileData = reader(csvFile, delimiter=';', quotechar='|') for row in fileData: user = User() user.first_name = row[0] user.last_name = row[1] user.email = row[2] user.college_name = row[3] user.qr_data = sha1(user.email).hexdigest() #qr = QRCode(version=10, error_correction=ERROR_CORRECT_H) qr = QRCode(version=6, border=4, box_size=5, error_correction=ERROR_CORRECT_Q) qr.add_data(user.qr_data) qr.make() # Generate the QRCode itself #im contains a PIL.Image.Image object im = qr.make_image() # To save it im.save("qr.png") #db_session.add(user) sendmail(user.email) db.session.add(user) db.session.commit() eu = EventUsers(event_id, user.id) db.session.add(eu) db.session.commit()
def encode(self, data: bytearray) -> Image: """ Encode a bytearray into a ChromaQR code. Returns a PIL Image which can be saved with `.save("filename.png")`. """ codes = [] section_length = math.ceil(len(data) / 3) split_data = [ data[0:section_length], data[section_length:section_length * 2], data[section_length * 2:] ] error_correction_map = { ErrorCorrection.LOW: constants.ERROR_CORRECT_L, ErrorCorrection.MED: constants.ERROR_CORRECT_M, ErrorCorrection.HIGH: constants.ERROR_CORRECT_Q, ErrorCorrection.MAX: constants.ERROR_CORRECT_H } target_version = -1 for i in range(3): qr_code = QRCode( version=target_version if i > 0 else None, error_correction=error_correction_map[self.error_correction]) qr_code.add_data(split_data[i], optimize=0) qr_code.make() if i == 0: target_version = qr_code.version qr_code_image = qr_code.make_image(fill_color="black", back_color="white") codes.append(qr_code_image.convert("L")) return Image.merge("RGB", codes)
def totp_setup(session, client_id, username, password): response = cognito_client.associate_software_token(Session=session) secret = response['SecretCode'] qr_uri = f'otpauth://totp/Cognito:{username}?secret={secret}&issuer=Cognito' qr = QRCode() qr.add_data(qr_uri) qr.make(fit=True) qr.print_ascii() user_code = input('Scan the QR code, then input the TOTP: ') response = cognito_client.verify_software_token( Session=response['Session'], UserCode=user_code) if response['Status'] != 'SUCCESS': print(f'Failed to verify MFA: {json.dumps(auth_response)}') sys.exit(1) token_response = auth_req(client_id, username, password) cognito_client.set_user_mfa_preference( SoftwareTokenMfaSettings={ 'Enabled': True, 'PreferredMfa': True }, AccessToken=token_response['AuthenticationResult']['AccessToken']) return token_response
def gen_qrcode(self, username, issuer_name="IAM MFA Code"): data = pyotp.totp.TOTP(self.secret_key).provisioning_uri(username, issuer_name) qr = QRCode( version=1, error_correction=constants.ERROR_CORRECT_L, box_size=6, border=4, ) try: qr.add_data(data) qr.make(fit=True) img = qr.make_image() if settings.KEEP_QR_FILE is True: self.img_file = self.dirpath + os.sep + self.secret_key + '.png' img.save(self.img_file) # 保存条形码图片 else: self.img_file = None buf = io.BytesIO() img.save(buf, format='PNG') # 保存成字符串 image_stream = buf.getvalue() heximage = base64.b64encode(image_stream) self.img_str = 'data:image/png;base64,' + heximage.decode() return True except Exception as e: traceback.print_exc() return False
def register(): form = RegistrationForm(request.form) if request.method == 'POST' and form.validate_on_submit(): #user = User(form.first_name.data, form.last_name.data, form.username.data, # form.username.data, form.email.data, form.enrollment.data, # form.college_name.data) user = User() form.populate_obj(user) #user.password = generate_password_hash(user.password) user.qr_data = sha1(user.email).hexdigest() qr = QRCode(version=10, error_correction=ERROR_CORRECT_H) qr.add_data(user.qr_data) qr.make() # Generate the QRCode itself #im contains a PIL.Image.Image object im = qr.make_image() # To save it im.save("qr.png") #db_session.add(user) sendmail(user.email) db.session.add(user) db.session.commit() return render_template('register.html', isreg=True) return render_template('register.html', form=form, isreg=False)
def parse_add(datafile, event_id): csvFile=open(datafile) fileData = reader(csvFile, delimiter=';', quotechar='|') for row in fileData: user = User() user.first_name=row[0] user.last_name=row[1] user.email=row[2] user.college_name=row[3] user.qr_data = sha1(user.email).hexdigest() #qr = QRCode(version=10, error_correction=ERROR_CORRECT_H) qr = QRCode( version=6, border=4, box_size=5, error_correction=ERROR_CORRECT_Q ) qr.add_data(user.qr_data) qr.make() # Generate the QRCode itself #im contains a PIL.Image.Image object im = qr.make_image() # To save it im.save("qr.png") #db_session.add(user) sendmail(user.email) db.session.add(user) db.session.commit() eu = EventUsers(event_id,user.id) db.session.add(eu) db.session.commit()
def main(): if len(argv) < 3: print 'Format: enc.py <identifier> <message>' return ID = argv[1] # Identifier of origin MESSAGE = argv[2] # Read private key of origin with open(ID + '.pr', 'r') as f: privatekey = PrivateKey.load_pkcs1(f.read()) # Sign message with private key SIGN = sign(MESSAGE, privatekey, 'SHA-256').encode('hex') # Concatenate message, signature and identifier TEXT = padding(MESSAGE, 100) + padding(SIGN, 400) + padding(ID, 100) # Create QR code qr = QRCode( version=1, error_correction=ERROR_CORRECT_L, box_size=10, border=4, ) qr.add_data(TEXT) qr.make(fit=True) img = qr.make_image() img.save(ID + '.png')
def qrstring(s): qr = QRCode(error_correction=constants.ERROR_CORRECT_L, box_size=25, border=0) qr.add_data(s) qr.make() return qr
def as_qrcode(self, error_correction=ERROR_CORRECT_M, box_size=5, border=2, fill_color="black", back_color="white"): """ :param error_correction: :param box_size: :param border: :param fill_color: :param back_color: :return: """ qr = QRCode( error_correction=error_correction, box_size=box_size, border=border, ) qr.add_data(self.as_vcard()) qr.make(fit=True) # make QR Code, removing from PIL and convert into Bytestring with BytesIO() as f: img = qr.make_image(fill_color=fill_color, back_color=back_color) img.save(f) f.seek(0) bytes = f.getvalue() return bytes
def buildQRRegion(): qr = QRCode(box_size=1, border=1, image_factory=LPQRImage) qr.add_data(sha256("").hexdigest()) qr.make() img = qr.make_image().get_image() return img
def render_qr(data, marker, html): qr = QRCode(box_size=5, border=2) qr.add_data(data) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") buf = BytesIO() img.save(buf) tag = 'data:image/png;base64,' + encodebytes(buf.getvalue()).decode() return html.replace(marker, tag)
def create_qrcode(params): qr = QRCode(error_correction=ERROR_CORRECT_H, box_size=params.size, border=params.border) qr.add_data(params.content) qr.make() output = params.output img = qr.make_image(fill_color=params.background, back_color=params.foreground) img.save(output) print('Created file: {}'.format(output))
def qrcode_produce(url): qr = QRCode( version=1, error_correction=constants.ERROR_CORRECT_L, box_size=10, border=4, ) qr.add_data(url) qr.make(fit=True) img = qr.make_image() img.save("qrcode.png")
def create_qr(data): qr = QRCode( version=1, error_correction=constants.ERROR_CORRECT_L, box_size=10, border=4 ) qr.add_data(data) qr.make(fit=True) img = qr.make_image(fill_collor='black', back_kolor='white') img.save("static/qr/qrcode.jpg", "JPEG")
def create_qr(self): qr = QRCode(version=1, error_correction=ERROR_CORRECT_H, border=4) #实例化一个QRcode类;version表示容错率,1为最高;error_correction表示纠错程度; #border表示二维码四周留白的格子数 qr.add_data(self.text1.text()) #想要二维码s扫出来的内容 qr.make(fit=True) #生成 img = qr.make_image() #产生一个可处理的图像对象 img = img.convert("RGB") #设置色彩格式为RGB ''' if self.text2.text(): try: logo = Image.open('{}'.format(self.text2.text())) w, h = img.size logo_w = int(w/4) logo_h = int(h/4) rel_w = int((w-logo_w)/2) rel_h = int((h-logo_h)/2) logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS) #上面的代码全都是用来调整在二维码中间插入的图片的大小和位置 logo = logo.convert("RGBA") #这里如果不是RGBA似乎会出错 img.paste(logo, (rel_w, rel_h), logo) #将二维码和自己想添加的图片合成 except: QMessageBox.about(self, 'Error', 'No Such a File') ''' if self.text2.text(): try: w, h = img.size text = self.text2.text() dr = ImageDraw.Draw(img) font = ImageFont.truetype( os.path.join("C:/Windows/Fonts", "simyou.ttf"), 50) dr.text(((w - 180) / 2, h - 45), text, font=font, fill='#000000') #上述将字符串写道图片上 except: QMessageBox.about(self, 'Error', 'No Such a File') if self.text2.text() == None: pass try: img.save('{}'.format(self.text3.text())) #保存图片 QMessageBox.about(self, 'Message', 'Successfully Created') except: QMessageBox.about(self, 'Error', 'Please Enter The Right Path')
def get_qr_code(self, config): raw_config = render_to_string('partials/_config.txt', {'config': config}) qr = QRCode() qr.add_data(raw_config) qr.make(fit=True) # render peer config img = qr.make_image(fill_color="black", back_color="white") buf = BytesIO() img.save(buf, format="PNG") return b64encode(buf.getvalue()).decode("utf-8")
def get_qr_code(data): qr = QRCode(version=1, error_correction=constants.ERROR_CORRECT_L, box_size=20, border=4) qr.add_data(data) qr.make(fit=True) img = qr.make_image() temp = StringIO() img.save(temp, format="PNG") qr_img = b64encode(temp.getvalue()) return qr_img
def getQRCodePage(urlPage): qr = QRCode() qr.add_data(urlPage) qr.make() qrcode = '["' + '",\n"'.join([ ''.join('1' if v else '0' for v in qr.modules[row]) for row in six.moves.range(qr.modules_count) ]) + '"]' result = StringIO() def w(s): result.write(s) result.write('\n') w('<html>') w('<head>') w('''<style type="text/css"> body { font-family: sans-serif; text-align: center; } </style>''') w('''<script> function Draw() { var qrcode={qrcode}; var c = document.getElementById("idqrcode"); var ctx = c.getContext("2d"); ctx.fillStyle = '#000'; var s = Math.floor( c.width / qrcode.length ); for( var y = 0; y < qrcode.length; ++y ) { var row = qrcode[y]; for( var x = 0; x < row.length; ++x ) { if( row.charAt(x) == '1' ) ctx.fillRect( x*s, y*s, s, s ); } } } '''.replace('{qrcode}', qrcode)) w('</script>') w('</head>') w('<body onload="Draw();">') w('<h1 style="margin-top: 32px;">Share Race Results</h1>') w('<canvas id="idqrcode" width="360" height="360"></canvas>') w('<h2>Scan the QRCode.<br/>Follow it to the Race Results page.</h2>') w('<h2>{}</h2>'.format(urlPage)) w('Powered by <a href="http://www.sites.google.com/site/crossmgrsoftware">CrossMgr</a>.' ) w('</body>') w('</html>') return result.getvalue().encode()
def __init__(self, parent, address): QDialog.__init__(self, parent) self.setupUi(self) self.parent = parent self.address = address self.addressButton.setText(address) qr = QRCode() qr.add_data(address) qr.make(fit=True) img = qr.make_image(fill_color='black', back_color='white') qimg = ImageQt(img) self.qrcode.setPixmap(QPixmap.fromImage(qimg))
def add_qrcode(): data = request.args.get('data', 'www.baidu.com?a=1234&b=4567') assert data == '' qr = QRCode(version=1, error_correction=constants.ERROR_CORRECT_L, box_size=10, border=4, image_factory=None, mask_pattern=None) qr.add_data(data) qr.make(fit=True) img = qr.make_image(fill_color='black', back_color='white') path = current_app.config['USER_UPLOAD_DIR'] + 'x.png' assert img.save(path) return 'ok'
def getQRCodePage( urlPage ): qr = QRCode() qr.add_data( urlPage ) qr.make() qrcode = '["' + '",\n"'.join( [''.join( '1' if v else '0' for v in qr.modules[row] ) for row in six.moves.range(qr.modules_count)] ) + '"]' result = StringIO() def w( s ): result.write( s ) result.write( '\n' ) w( '<html>' ) w( '<head>' ) w( '''<style type="text/css"> body { font-family: sans-serif; text-align: center; } </style>''' ) w( '''<script> function Draw() { var qrcode={qrcode}; var c = document.getElementById("idqrcode"); var ctx = c.getContext("2d"); ctx.fillStyle = '#000'; var s = Math.floor( c.width / qrcode.length ); for( var y = 0; y < qrcode.length; ++y ) { var row = qrcode[y]; for( var x = 0; x < row.length; ++x ) { if( row.charAt(x) == '1' ) ctx.fillRect( x*s, y*s, s, s ); } } } '''.replace('{qrcode}', qrcode) ) w( '</script>' ) w( '</head>' ) w( '<body onload="Draw();">' ) w( '<h1 style="margin-top: 32px;">Share Race Results</h1>' ) w( '<canvas id="idqrcode" width="360" height="360"></canvas>' ) w( '<h2>Scan the QRCode.<br/>Follow it to the Race Results page.</h2>' ) w( '<h2>{}</h2>'.format(urlPage) ) w( 'Powered by <a href="http://www.sites.google.com/site/crossmgrsoftware">CrossMgr</a>.' ) w( '</body>' ) w( '</html>' ) return result.getvalue().encode()
def createQr(self): qr = QRCode(version=1, error_correction=ERROR_CORRECT_H, border=4) qr.add_data(self.text1.text()) qr.make(fit=True) img = qr.make_image() img = img.convert("RGB") if self.text2.text(): try: w, h = img.size text = self.text2.text() dr = ImageDraw.Draw(img) font = ImageFont.truetype( os.path.join("C:/Windows/Fonts", "simyou.ttf"), 50) dr.text(((w - 160) / 2, h - 45), text, font=font, fill='#000000') #上述将字符串写道图片上 except: QMessageBox.about(self, 'Error', 'Error') if self.text2.text() == None: pass try: logo = Image.open(self.fname) w, h = img.size logo_w = int(w / 4) logo_h = int(h / 4) rel_w = int((w - logo_w) / 2) rel_h = int((h - logo_h) / 2) logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS) logo = logo.convert("RGBA") img.paste(logo, (rel_w, rel_h), logo) finame, jud = QFileDialog.getSaveFileName( self, '保存文件', './', "Image Files (*.jpg *.png)") if jud and img: img.save(finame) except: QMessageBox.about(self, 'Error', 'No Such a File')
def get_qrcode(skey, username): filepath = os.path.join(BASE_DIR, '/media/qrcode/') data = pyotp.totp.TOTP(skey).provisioning_uri(username, issuer_name=u'SOMS') qr = QRCode(version=1, error_correction=constants.ERROR_CORRECT_L, box_size=6, border=4) try: qr.add_data(data) qr.make(fit=True) img = qr.make_image() img.save(filepath + username + '.png') return True except Exception, e: print e return False
def print_qr(self, data): qr = QRCode(version=None, error_correction=ERROR_CORRECT_H, box_size=20 ) qr.add_data(data) qr.make(fit=True) # Generate the QRCode itself # im contains a PIL.Image.Image object im = qr.make_image() prntr = Popen(["lp", "-s", "-d%s" % self.printer_name], stdin = PIPE, stdout = None, stderr = None) ## To send it to the printer im.save(prntr.stdin) # wait for process to do its stuff prntr.communicate()
def _compute_qr_image(self): for document in self: qrcode_content = document._get_qrcode_content() qr = QRCode( version=1, error_correction=qr_constants.ERROR_CORRECT_L, box_size=5, border=4, ) qr.add_data(qrcode_content) qr.make(fit=True) qr_image = qr.make_image() temp_file = StringIO() qr_image.save(temp_file) qr_image = b64encode(temp_file.getvalue()) document.qr_image = qr_image
def get_qrcode(skey, username, uid): filepath = os.path.join(BASE_DIR, 'media/qrcode/{}/'.format(uid)) if not os.path.exists(filepath): os.makedirs(filepath) data = pyotp.totp.TOTP(skey).provisioning_uri(username, issuer_name=u'SOMS') qr = QRCode(version=1, error_correction=constants.ERROR_CORRECT_L, box_size=6, border=4) try: qr.add_data(data) qr.make(fit=True) img = qr.make_image() img.save(filepath + username + '.png') return True except Exception as e: return False
def adduser(event_id=1): form = RegistrationForm(request.form) eventdata = db.session.query(Events).filter_by(id=event_id).all() if request.method == 'POST' and form.validate_on_submit(): #user = User(form.first_name.data, form.last_name.data, form.username.data, # form.username.data, form.email.data, form.enrollment.data, # form.college_name.data) user = User() form.populate_obj(user) #user.password = generate_password_hash(user.password) user.qr_data = sha1(user.email).hexdigest() #qr = QRCode(version=10, error_correction=ERROR_CORRECT_H) qr = QRCode(version=6, border=4, box_size=5, error_correction=ERROR_CORRECT_Q) qr.add_data(user.qr_data) qr.make() # Generate the QRCode itself #im contains a PIL.Image.Image object im = qr.make_image() # To save it im.save("qr.png") #db_session.add(user) sendmail(user.email) db.session.add(user) db.session.commit() eu = EventUsers(event_id, user.id) db.session.add(eu) db.session.commit() event_d = db.session.query(Events).filter_by(id=event_id).all() cnt = db.session.query(EventUsers).filter_by(event_id=event_id).count() return render_template('eventdetails.html', event_id=event_id, eventdata=event_d[0], cnt=cnt) return render_template('adduser.html', form=form, isreg=False, event_id=event_id, event=eventdata[0])
def generate_qr_code_response(request): user = request.user qrcode = QRCode( error_correction=ERROR_CORRECT_H, box_size=4, border=4 ) uri = generate_uri('totp', bytes(user.secret), user.email, 'keybar') qrcode.add_data(uri) qrcode.make(fit=True) img = qrcode.make_image() stream = io.BytesIO() img.save(stream) return HttpResponse(stream.getvalue(), content_type='image/png')
def generate_ticket_qr_code(registration): """Generate a Pillow `Image` with a QR Code encoding a check-in ticket. :param registration: corresponding `Registration` object """ qr = QRCode(version=6, error_correction=constants.ERROR_CORRECT_M, box_size=4, border=1) qr_data = { "registrant_id": registration.id, "checkin_secret": registration.ticket_uuid, "event_id": unicode(registration.event_new.id), "server_url": Config.getInstance().getBaseURL() } json_qr_data = json.dumps(qr_data) qr.add_data(json_qr_data) qr.make(fit=True) return qr.make_image()._img
def module001_sharing_details(): qr = QRCode(version=20, error_correction=ERROR_CORRECT_L) base_url = request.host if request.args.get('itemtype') == 'course': course = Course.query.get(request.args.get('rowid')) if not course or course.user_id != current_user.id: flash("An error has occurred retrieving details for the activity") return redirect(url_for('module001.module001_course')) qr.add_data("http://{}/course/follow?sharedlink=1&code={}".format( base_url, course.code)) module, itemtype, item = "library", "course", course else: participation = ParticipationCode.query.get(request.args.get('rowid')) if not participation or participation.user_id != current_user.id: flash( "An error has occurred retrieving details for the participation" ) return redirect( url_for('module001.module001_participation_generate')) qr.add_data( "http://{}/course/participation_redeem?sharedlink=1&code={}". format(base_url, participation.code)) module, itemtype, item = "participation_gerenate", "participation", participation try: qr.make() # Generate the QRCode itself im = qr.make_image() filename = "./static/qrcodes/{}.png".format(item.code) urlfilename = "http://{}/static/qrcodes/{}.png".format( base_url, item.code) im.save(filename) return render_template('module001_sharing_details.html', module="module001", item=item, itemtype=itemtype, filename=urlfilename, base_url=base_url) except: return render_template('module001_sharing_details.html', module="module001", item=item, itemtype=itemtype, base_url=base_url)
def _gen_code_img(data_url, img_seed_name): from qrcode import QRCode, constants qr = QRCode( version=1, error_correction=constants.ERROR_CORRECT_L, box_size=10, border=4, ) full_url = "http://" + QRCodeManager.HOST + data_url qr.add_data(full_url) qr.make(fit=True) img = qr.make_image() img_name = "qrcode_" + img_seed_name + ".png" img_path = settings.MEDIA_ROOT + "qrcodes/" + img_name img_url = settings.MEDIA_URL + "qrcodes/" + img_name img.save(img_path, 'PNG') return img_url
def adduser(event_id=1): form = RegistrationForm(request.form) eventdata = db.session.query(Events).filter_by(id = event_id).all() if request.method == 'POST' and form.validate_on_submit(): #user = User(form.first_name.data, form.last_name.data, form.username.data, # form.username.data, form.email.data, form.enrollment.data, # form.college_name.data) user = User() form.populate_obj(user) #user.password = generate_password_hash(user.password) user.qr_data = sha1(user.email).hexdigest() #qr = QRCode(version=10, error_correction=ERROR_CORRECT_H) qr = QRCode( version=6, border=4, box_size=5, error_correction=ERROR_CORRECT_Q ) qr.add_data(user.qr_data) qr.make() # Generate the QRCode itself #im contains a PIL.Image.Image object im = qr.make_image() # To save it im.save("qr.png") #db_session.add(user) sendmail(user.email) db.session.add(user) db.session.commit() eu = EventUsers(event_id,user.id) db.session.add(eu) db.session.commit() event_d = db.session.query(Events).filter_by(id = event_id).all() cnt = db.session.query(EventUsers).filter_by(event_id = event_id).count() return render_template('eventdetails.html', event_id=event_id, eventdata=event_d[0],cnt=cnt) return render_template('adduser.html', form=form, isreg=False,event_id=event_id, event=eventdata[0])
def _getAnswer(self): config = Config.getInstance() checkin_app_client_id = config.getCheckinAppClientId() if checkin_app_client_id is None: raise NoReportError(_("indico-checkin client_id is not defined in the Indico configuration")) checkin_app = OAuthApplication.find_first(client_id=checkin_app_client_id) if checkin_app is None: raise NoReportError( _("indico-checkin is not registered as an OAuth application with client_id {}").format( checkin_app_client_id ) ) # QRCode (Version 6 with error correction L can contain up to 106 bytes) qr = QRCode(version=6, error_correction=constants.ERROR_CORRECT_M, box_size=4, border=1) baseURL = config.getBaseSecureURL() if config.getBaseSecureURL() else config.getBaseURL() qr_data = { "event_id": self._conf.getId(), "title": self._conf.getTitle(), "date": format_date(self._conf.getAdjustedStartDate()), "server": { "baseUrl": baseURL, "consumerKey": checkin_app.client_id, "auth_url": url_for("oauth.oauth_authorize", _external=True), "token_url": url_for("oauth.oauth_token", _external=True), }, } json_qr_data = json.dumps(qr_data) qr.add_data(json_qr_data) qr.make(fit=True) qr_img = qr.make_image() output = StringIO() qr_img._img.save(output, format="png") im_data = output.getvalue() return "data:image/png;base64,{0}".format(base64.b64encode(im_data))
def generate_ticket_qr_code(registration): """Generate a Pillow `Image` with a QR Code encoding a check-in ticket. :param registration: corresponding `Registration` object """ qr = QRCode( version=17, error_correction=constants.ERROR_CORRECT_Q, box_size=3, border=1 ) qr_data = { "registrant_id": registration.id, "checkin_secret": registration.ticket_uuid, "event_id": unicode(registration.event.id), "server_url": config.BASE_URL, "version": 1 } signals.event.registration.generate_ticket_qr_code.send(registration, ticket_data=qr_data) json_qr_data = json.dumps(qr_data) qr.add_data(json_qr_data) qr.make(fit=True) return qr.make_image()._img
def generate(key_type, key, user, issuer, counter=None, **kwargs): r""" Generate a QR code suitable for Google Authenticator. See: https://code.google.com/p/google-authenticator/wiki/KeyUriFormat :param str key_type: the auth type, either ``totp`` or ``hotp`` :param str key: the secret key :param str user: the username :param str issuer: issuer name :param counter: initial counter value (HOTP only) :type counter: :func:`int` or :data:`None` :param \*\*kwargs: Arguments passed to the :class:`qrcode.QRCode` constructor :returns: an image object :rtype: :class:`qrcode.image.base.BaseImage` """ qr = QRCode(**kwargs) oath_uri = uri.generate(key_type, key, user, issuer, counter) qr.add_data(oath_uri) if kwargs.get('version') is None: qr.make(fit=True) return qr.make_image()
def create_pdf(name, orderid, ticketid, event, tickettype): packet = StringIO.StringIO() # create a new PDF with Reportlab can = canvas.Canvas(packet) qr = QRCode(version=1, error_correction=ERROR_CORRECT_L, box_size=50, border=4, ) qr.add_data(uuid.uuid4()) qr.make(fit=True) # Generate the QRCode itself # im contains a PIL.Image.Image object im = qr.make_image() im.save(os.path.join(settings.PDF_LOCATION, 'qr', "qr" + str(ticketid) + ".jpg"), 'JPEG') can.drawImage(os.path.join(settings.PDF_LOCATION, 'qr', 'qr' + str(ticketid) + ".jpg"), 150, 50, 125, 125) os.remove(os.path.join(settings.PDF_LOCATION, 'qr', 'qr' + str(ticketid) + ".jpg")) terms = Terms.objects.get(id=1).terms terms = terms.replace('\r\n', 'SPLIT') terms = terms.split("SPLIT") x = 150 for line in terms: can.drawString(300, x, line) x -= 15 can.drawString(20, 150, str(name)) can.drawString(20, 135, "OrderNr: " + str(orderid)) can.drawString(20, 120, "TicketNr: " + str(ticketid)) can.drawString(20, 30, "Type: " + str(tickettype)) can.line(290, 160, 290, 5) can.drawString(110, 150, "") can.save() # move to the beginning of the StringIO buffer packet.seek(0) new_pdf = PdfFileReader(packet) # read your existing PDF existing_pdf = PdfFileReader(file(event.template.path, "rb")) output = PdfFileWriter() # add the "watermark" (which is the new pdf) on the existing page page = existing_pdf.getPage(0) page.mergePage(new_pdf.getPage(0)) output.addPage(page) return output
def _getAnswer(self): consumers = dict((consumer.getName(), consumer) for consumer in ConsumerHolder().getList()) if "indico-checkin" not in consumers: raise NoReportError(_("There is no indico-checkin consumer key for OAuth")) # QRCode (Version 6 with error correction L can contain up to 106 bytes) qr = QRCode( version=6, error_correction=constants.ERROR_CORRECT_M, box_size=4, border=1 ) oauth_checkin = consumers["indico-checkin"] config = Config.getInstance() baseURL = config.getBaseSecureURL() if config.getBaseSecureURL() else config.getBaseURL() qr_data = {"event_id": self._conf.getId(), "title": self._conf.getTitle(), "date": format_date(self._conf.getAdjustedStartDate()), "server": {"baseUrl": baseURL, "consumerKey": oauth_checkin.getId(), "consumerSecret": oauth_checkin.getSecret(), } } json_qr_data = json.dumps(qr_data) qr.add_data(json_qr_data) qr.make(fit=True) qr_img = qr.make_image() output = StringIO() qr_img._img.save(output, format="png") im_data = output.getvalue() return 'data:image/png;base64,{0}'.format(base64.b64encode(im_data))
import zbarlight from PIL import Image from qrcode import QRCode subject = "Science" yearLevel = "07" pageNumber = 0000 createdCodes = [] while pageNumber < 11: pageNumber += 1 fileNumber = "{0} - Year{1} - Page{2}".format(subject, yearLevel, pageNumber) qr = QRCode(version=1, error_correction=ERROR_CORRECT_H) qr.add_data(fileNumber) qr.make() # Generate the QRCode itself # im contains a PIL.Image.Image object im = qr.make_image() # To save it im.save("./qrcodes/%s.png" % fileNumber) createdCodes.append(fileNumber) def load_from_file(file_path="filename.png"): with open(file_path, "rb") as image_file: image = Image.open(image_file) image.load() codes = zbarlight.scan_codes("qrcode", image) codes = codes[0].decode("ascii")
def qrcode(self): qrcode = QRCode(error_correction=self.LEVELS[self.level], version=self.size) qrcode.add_data(self.data) qrcode.make() return qrcode
def generate_qr_as_pil_image(data): qr = QRCode(error_correction=ERROR_CORRECT_L, box_size=5, border=1) qr.add_data(data) qr.make() return qr.make_image()