private void InitCustomFont(string text) { QRCoder.QRCodeGenerator qr = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData data = qr.CreateQrCode(text, QRCoder.QRCodeGenerator.ECCLevel.Q); QRCoder.QRCode code = new QRCoder.QRCode(data); qrBox.Image = code.GetGraphic(10); }
public void SaveQrCode(string data, string filename, QRCoder.QRCodeGenerator.ECCLevel err_cor) { QRCoder.QRCodeData qr_data = qgen.CreateQrCode(data, err_cor); qrCode = new QRCoder.QRCode(qr_data); bitmap = qrCode.GetGraphic(100, Color.Black, Color.White, false); bitmap.Save(filename); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="value">需要生成的值</param> /// <param name="pixelsPerModule">像素</param> /// <param name="level">级别</param> /// <param name="drawQuietZones">是否生成白色边框</param> /// <param name="ico">ico logo</param> /// <param name="iconSizePercent">log大小比例</param> /// <param name="iconBorderWidth">log的边框</param> /// <returns></returns> public Bitmap GetQRCode(string value, int pixelsPerModule = 8, QRCodeLevel level = QRCodeLevel.M, bool drawQuietZones = true, Bitmap ico = null, int iconSizePercent = 15, int iconBorderWidth = 6) { QRCoder.QRCodeGenerator Tool = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData data = Tool.CreateQrCode(value, (QRCoder.QRCodeGenerator.ECCLevel)((int)level), true); QRCoder.QRCode qrcode = new QRCoder.QRCode(data); return(qrcode.GetGraphic(pixelsPerModule, Color.Black, Color.White, ico, iconSizePercent, iconBorderWidth, drawQuietZones)); }
private QRCoder.QRCode GenerateQRCode(string v) { QRCoder.QRCodeGenerator QRG = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qRCodeData = QRG.CreateQrCode(v, QRCoder.QRCodeGenerator.ECCLevel.H); QRCoder.QRCode qRCode = new QRCoder.QRCode(qRCodeData); return(qRCode); }
public static Bitmap GetQrCodeBitMap(string content, int version, int pixel) { QRCoder.QRCodeGenerator coder = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData codeData = coder.CreateQrCode(content, QRCoder.QRCodeGenerator.ECCLevel.M, true, true); QRCoder.QRCode code = new QRCoder.QRCode(codeData); Bitmap bitMap = code.GetGraphic(pixel, Color.Black, Color.White, true); return(bitMap); }
/// <summary> /// generate QR Barcode (as image) with info received from the client /// </summary> /// <param name="codeInfo"></param> /// <returns></returns> private HttpContent GenerateQRImage(string codeInfo) { QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qrCodeData = qrGenerator.CreateQrCode(codeInfo, QRCoder.QRCodeGenerator.ECCLevel.Q); QRCoder.Base64QRCode qrCode = new QRCoder.Base64QRCode(qrCodeData); string qrCodeImageAsBase64 = qrCode.GetGraphic(5); return(new StringContent(qrCodeImageAsBase64)); }
/// <summary> /// 生成不带图标的二维码 /// </summary> /// <param name="msg">二维码内容</param> /// <param name="version">版本 1 ~ 40</param> /// <param name="pixel">像素点大小(二维码的大小)</param> /// <param name="white_edge">二维码白边</param> /// <returns></returns> public static Bitmap Code(string msg, int version, int pixel, bool white_edge) { QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version); QRCoder.QRCode code = new QRCoder.QRCode(code_data); Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, null, 0, 0, white_edge); return(bmp); }
/// <summary> /// 生成不带图标的二维码到指定的路径 /// </summary> /// <param name="msg">二维码内容</param> /// <param name="version">版本 1 ~ 40</param> /// <param name="pixel">像素点大小(二维码的大小)</param> /// <param name="white_edge">二维码白边</param> /// <param name="path">二维码存储路径</param> /// <param name="format">二维码图片格式(.Bmp .Png等)</param> public static void Code(string msg, int version, int pixel, bool white_edge, string path, ImageFormat format) { QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version); QRCoder.QRCode code = new QRCoder.QRCode(code_data); Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, null, 0, 0, white_edge); bmp.Save(path, format); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="msg">信息</param> /// <param name="pixel">像素点大小</param> /// <returns>位图</returns> public static Bitmap GenQRCode(string msg, int pixel) { QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */); QRCoder.QRCode code = new QRCoder.QRCode(code_data); Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, drawQuietZones: true); return(bmp); }
public static System.Drawing.Bitmap GetQRCodeBitmap(string aUrl) { QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qrCodeData = qrGenerator.CreateQrCode(aUrl, QRCoder.QRCodeGenerator.ECCLevel.Q); QRCoder.QRCode qrCode = new QRCoder.QRCode(qrCodeData); System.Drawing.Bitmap qrCodeImage = qrCode.GetGraphic(10); return(qrCodeImage); }
/// <summary> /// Рисует QR код /// </summary> /// <param name="data">данный</param> /// <param name="g">объект графики</param> /// <param name="z">размер квадрата</param> /// <param name="p">координаты левого верхнего угла</param> /// <param name="err_cor">уровень коррекции ошибок</param> public void DrawQrCode(string data, Graphics g, int z, PointF p, QRCoder.QRCodeGenerator.ECCLevel err_cor) { QRCoder.QRCodeData qr_data = qgen.CreateQrCode(data, err_cor); qrCode = new QRCoder.QRCode(qr_data); bitmap = qrCode.GetGraphic(10, Color.Black, Color.White, false); float h = z * (float)3.779527559055; g.DrawImage(bitmap, p.X, p.Y, h, h); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="msg">信息</param> /// <param name="version">版本 1 ~ 40</param> /// <param name="pixel">像素点大小</param> /// <param name="icon_path">图标路径</param> /// <param name="icon_size">图标尺寸</param> /// <param name="icon_border">图标边框厚度</param> /// <param name="white_edge">二维码白边</param> /// <returns>位图</returns> public static Bitmap code(string msg, int pixel, string icon_path, int icon_size, int icon_border, bool white_edge) { QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8); QRCoder.QRCode code = new QRCoder.QRCode(code_data); Bitmap icon = new Bitmap(icon_path); Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge); return(bmp); }
/// <summary> /// 生成二维码 返回图片对象 /// </summary> /// <param name="content"></param> /// <returns></returns> public static Bitmap CreateCodeSimpleBitmap(string content) { if (string.IsNullOrEmpty(content)) { return(null); } QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qrCodeData = qrGenerator.CreateQrCode(content, QRCoder.QRCodeGenerator.ECCLevel.Q); QRCoder.QRCode qrCode = new QRCoder.QRCode(qrCodeData); Bitmap qrCodeImage = qrCode.GetGraphic(20, Color.Black, Color.White, true); return(qrCodeImage); }
public static string GetQRCodeEmbeddedImg(string identity, byte[] secret, QRCoder.QRCodeGenerator.ECCLevel size) { string base32Secret = GetSecretCode(secret); string keyUri = string.Format("otpauth://totp/{0}?secret={1}", System.Web.HttpUtility.UrlEncode(identity), base32Secret); QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qrCodeData = qrGenerator.CreateQrCode(keyUri, size); QRCoder.QRCode qrCode = new QRCoder.QRCode(qrCodeData); Bitmap qrCodeImage = qrCode.GetGraphic(size == QRCoder.QRCodeGenerator.ECCLevel.L ? 5 : (size == QRCoder.QRCodeGenerator.ECCLevel.M || size == QRCoder.QRCodeGenerator.ECCLevel.H ? 10 : 20)); using (MemoryStream ms = new MemoryStream()) { qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png); byte[] png = ms.GetBuffer(); string imageUrl = "data:image/png;base64," + Convert.ToBase64String(png); return(imageUrl); } }
public Bitmap code(string msg, int version, int pixel, int icon_size, int icon_border, bool white_edge) { string icon_path = Environment.CurrentDirectory + @"\wwwroot\img\logo.jpg"; logger.LogInformation(icon_path); QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version); QRCoder.QRCode code = new QRCoder.QRCode(code_data); Bitmap icon = new Bitmap(icon_path); Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge); return(bmp); }
private async void ShoarQrBtnClicked(object sender, RoutedEventArgs e) { var index = (sender as Button).TabIndex; QRCoder.PayloadGenerator.WiFi generator; string title = ""; if (index == 0) { generator = new QRCoder.PayloadGenerator.WiFi(title = data.wlanInfo.wl0_ssid, data.wlanInfo.wl0_wpa_psk, QRCoder.PayloadGenerator.WiFi.Authentication.WPA); } else { generator = new QRCoder.PayloadGenerator.WiFi(title = data.wlanInfo.wl1_ssid, data.wlanInfo.wl1_wpa_psk, QRCoder.PayloadGenerator.WiFi.Authentication.WPA); } QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qrCodeData = qrGenerator.CreateQrCode(generator.ToString(), QRCoder.QRCodeGenerator.ECCLevel.Q); await new Control.QrCodeDialog(title, "Share Wi-Fi", qrCodeData).ShowAsync(); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="msg">信息</param> /// <param name="version">版本 1 ~ 40</param> /// <param name="pixel">像素点大小</param> /// <param name="icon_path">图标路径</param> /// <param name="icon_size">图标尺寸</param> /// <param name="icon_border">图标边框厚度</param> /// <param name="white_edge">二维码白边</param> /// <returns>位图</returns> public static Bitmap code(string msg, int version = 5, int pixel = 6, string icon_path = "", int icon_size = 20, int icon_border = 2, bool white_edge = true) { QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version); QRCoder.QRCode code = new QRCoder.QRCode(code_data); Bitmap icon; if (string.IsNullOrEmpty(icon_path)) { icon = null; } else { icon = new Bitmap(icon_path); } Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge); return(bmp); }
public Image qrgen(string qrcode) { if (qrcode.Equals("")) { int first_qr = rand.Next(10000, 99999); int second_qr = rand.Next(10000, 99999); qrcode = first_qr.ToString() + second_qr.ToString(); } else { qrcode = qrcode.ToString(); } QRCoder.QRCodeGenerator qrCodeGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qrCodeData = qrCodeGenerator.CreateQrCode(qrcode, QRCoder.QRCodeGenerator.ECCLevel.Q); QRCoder.QRCode qrCode = new QRCoder.QRCode(qrCodeData); Image img = qrCode.GetGraphic(2); return(img); }
private void btnQrCodeGenerator_Click(object sender, RoutedEventArgs e) { QRCoder.QRCodeGenerator qr = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData data = qr.CreateQrCode(txtQrCode.Text, QRCoder.QRCodeGenerator.ECCLevel.L); QRCoder.QRCode code = new QRCoder.QRCode(data); Bitmap bitmap = code.GetGraphic(100); using (MemoryStream memory = new MemoryStream()) { bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp); memory.Position = 0; BitmapImage bitmapimage = new BitmapImage(); bitmapimage.BeginInit(); bitmapimage.StreamSource = memory; bitmapimage.CacheOption = BitmapCacheOption.OnLoad; bitmapimage.EndInit(); qrImageView.Source = bitmapimage; } }
private ImageSource GenerateQRCode(string key, string username) { string qrString = "otpauth://totp/GP:" + username + "?secret=" + key + "&issuer=GP"; QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qrCodeData = qrGenerator.CreateQrCode(qrString, QRCoder.QRCodeGenerator.ECCLevel.Q); QRCoder.QRCode qrCode = new QRCoder.QRCode(qrCodeData); Bitmap qrCodeImage = qrCode.GetGraphic(20); using (MemoryStream memory = new MemoryStream()) { qrCodeImage.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp); memory.Position = 0; BitmapImage bitmapimage = new BitmapImage(); bitmapimage.BeginInit(); bitmapimage.StreamSource = memory; bitmapimage.CacheOption = BitmapCacheOption.OnLoad; bitmapimage.EndInit(); return(bitmapimage); } }
/// <summary> /// 生成二维码 /// </summary> /// <param name="msg">信息</param> /// <param name="version">版本 1 ~ 40</param> /// <param name="pixel">像素点大小</param> /// <param name="icon_path">图标路径</param> /// <param name="icon_size">图标尺寸</param> /// <param name="icon_border">图标边框厚度</param> /// <param name="white_edge">二维码白边</param> /// <returns>位图</returns> public static Bitmap EncodeQRCode(string msg, int version, int pixel, string icon_path, int icon_size, int icon_border, bool white_edge) { QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.H /* 这里设置容错率的一个级别 */, true, false, QRCoder.QRCodeGenerator.EciMode.Utf8, version); QRCoder.QRCode code = new QRCoder.QRCode(code_data); Bitmap icon; if (icon_path == null || icon_path == "") { icon = null; } else { icon = new Bitmap(icon_path); } Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge); return(bmp); }
private void cargarDatos() { //colocar en referencia la dll de qrcode para oder generar el codigo String codigogenerado = "000008967"; //generamos el codigo QRCoder.QRCodeGenerator qRCodeGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qRCodeData = qRCodeGenerator.CreateQrCode(codigogenerado, QRCoder.QRCodeGenerator.ECCLevel.Q); QRCoder.QRCode qRCode = new QRCoder.QRCode(qRCodeData); //transformamos en bits Bitmap bmp = qRCode.GetGraphic(7); using (MemoryStream ms = new MemoryStream()) { //importante para generar el qr bmp.Save(ms, ImageFormat.Bmp); PermisoSalida ps = new PermisoSalida(); List <PermisoSalida.PermisoSalidaRow> PermisoR = new List <PermisoSalida.PermisoSalidaRow>(); PermisoSalida.PermisoSalidaRow row = ps._PermisoSalida.NewPermisoSalidaRow(); //dia lunes 26 //Dato para imprimir el volante : 250555 // PermisoSalidaDA permisoda = new PermisoSalidaDA(); Entities.Request.RequestImprimirPermisoSalida requestpermiso = new Entities.Request.RequestImprimirPermisoSalida(); PermisoSalidaDA permisoda = new PermisoSalidaDA(); requestpermiso.PermisoSalida = "250555"; List <Entities.PermisoSalida> ListaPermisoSalida = permisoda.ImprimirPermisoSalida(requestpermiso); foreach (Entities.PermisoSalida datos in ListaPermisoSalida) { row = ps._PermisoSalida.NewPermisoSalidaRow(); row.PermisoSalida = datos.NumeroPermisoSalida; row.Rol = datos.Rol; row.Agencia = datos.Agencia; row.Despachador = datos.Despachador; row.Carnet = datos.Carnet; row.Recalada = datos.Recalada; row.NombreNave = datos.NombreNave; row.FechaArribo = datos.FechaArribo; row.TipoDocumento = datos.TipoDocumento; row.NumeroDocumento = datos.NumeroDocumento; row.Cliente = datos.Cliente; row.DocumentoAduana = datos.DocumentoAduana; row.FechaEmision = datos.FechaEmision; row.FechaVencimiento = datos.FechaVencimiento; row.Item = datos.Item; row.MarcasNumeros = datos.MarcasNumeros; row.Mercaderia = datos.Mercaderia; //row.IdenManifiesto = datos.IdenManifiesto; row.TipoEmbalaje = datos.TipoEmbalaje; row.TipoCarga = datos.TipoCarga; row.Carga = datos.Carga; row.Cantidad = datos.Cantidad; row.Peso = datos.Peso; row.Viaje = datos.Viaje; row.Contenedor = datos.Contenedor; row.FechaIngreso = datos.FechaIngreso; row.CargaPeligrosa = datos.CargaPeligrosa; row.Manifiesto = datos.Manifiesto; row.Ubicacion = datos.Ubicacion; row.Sada = datos.Sada; row.Usuario = datos.Usuario; row.Conectado = datos.Conectado; row.IQBF = datos.IQBF; PermisoR.Add(row); } //comentado dia viernes 23 /* row.Agencia = "TRAMARSA"; * row.Carga = "STANDARD 40"; * row.Cantidad = "1.00"; * row.Cliente = "INTRADEVCO INDUSTRIAL SA"; * // row.CargaPeligrosa = "NO"; * row.Carnet = "5547-17-R"; * row.Conectado = "NO"; * row.Contenedor = "UACU9798779"; * row.Despachador = "CUARESMA SIERRA MARIO JULIO"; * row.DocumentoAduana = "118-2019-10-325270-01-8"; * row.FechaArribo = "27/07/2019"; * row.FechaEmision = "12/08/2019"; * row.FechaIngreso = "20/07/2019"; * row.FechaVencimiento = "12/08/2019"; * row.Rol = "AGENTE ADUANA"; * row.IQBF = "NO"; * row.Recalada = "00000838509"; * row.TipoCarga = "CONTENEDORES"; * row.TipoDocumento = "CONOCIMIENTO DE EMBARQUE"; * row.TipoEmbalaje = "CONTENEDOR"; * row.Viaje = "927W"; * row.NombreNave = "NORDIC HONG KONG"; * row.Manifiesto = "2019-01987"; * row.NumeroDocumento = "HLCUSS5190707005"; * // row.Modalidad = "NORMAL"; * row.MarcasNumeros = " "; * row.Item = "0001"; * row.Peso = "25,300"; * row.Ubicacion = "18 /E /1"; * // row.CodigoQR = ms.ToArray(); * //row.Numero_Permiso = "asd"; */ reportViewer1.LocalReport.DataSources.Clear(); reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("PermisoSalida", PermisoR)); reportViewer1.RefreshReport(); } }
public void qrCodeGenerate(string text) { QRCoder.QRCodeData qrData = qRCodeGenerator.CreateQrCode(text, QRCoder.QRCodeGenerator.ECCLevel.H); QRCoder.QRCode qrCode = new QRCoder.QRCode(qrData); qrCodeSave(qrCode); }
public CreateQRCodeResponse CreateQRCode(CreateQRCodeRequest createQRCodeRequest) { int count = _qRCodeRepository.GetAlleQRCodes() .Where(x => x.eVoucherId == createQRCodeRequest.eVoucharId).Count(); if (count < 1000) { string promoCode = String.Empty; string imageURL = string.Empty; QRCode obj = new QRCode(); obj.Id = Guid.NewGuid(); obj.eVoucherId = createQRCodeRequest.eVoucharId; bool isAlreadyHave = false; do { promoCode = GeneratePromoteCode(); isAlreadyHave = _qRCodeRepository.CheckPromoCode(promoCode); }while (isAlreadyHave); obj.PromoCode = promoCode; QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData qrCodeData = qrGenerator.CreateQrCode(promoCode, QRCoder.QRCodeGenerator.ECCLevel.Q); QRCoder.QRCode qrCode = new QRCoder.QRCode(qrCodeData); try { using (Bitmap bitMap = qrCode.GetGraphic(20)) { using (MemoryStream ms = new MemoryStream()) { bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); byte[] byteImage = ms.ToArray(); imageURL = "data:image/png;base64," + Convert.ToBase64String(byteImage); obj.QRCodeImg = byteImage; obj.CreatedBy = "System"; obj.CreatedDate = DateTime.Now; _qRCodeRepository.CreateQRCode(obj); var qrDto = _messageMapper.MapToeQRCodeDto(obj); var createResponse = new CreateQRCodeResponse { codeDto = qrDto, StatusCode = System.Net.HttpStatusCode.OK }; return(createResponse); } } } catch (Exception ex) { var createResponse = new CreateQRCodeResponse { StatusCode = System.Net.HttpStatusCode.BadRequest }; return(createResponse); } } else { string messageStr = "QRCode generation exceed limitation!"; List <string> msgList = new List <string>(); msgList.Add(messageStr); var createResponse = new CreateQRCodeResponse { Messages = msgList }; return(createResponse); } }
private void OnOTPQRCode(object sender, EventArgs e) { if (m_host.MainWindow.GetSelectedEntriesCount() != 1) { return; } KPOTP otp = OTPDAO.GetOTP(m_host.MainWindow.GetSelectedEntry(true)); if (!otp.Valid) { return; } try { byte[] bOTP = otp.OTPAuthString.ReadUtf8(); QRCoder.QRCodeData qrd = QRCoder.QRCodeGenerator.GenerateQrCode(bOTP, QRCoder.QRCodeGenerator.ECCLevel.Q); MemUtil.ZeroByteArray(bOTP); QRCoder.QRCode qrc = new QRCoder.QRCode(qrd); Bitmap bmp = qrc.GetGraphic(8); QRForm f = new QRForm(); f.FormBorderStyle = FormBorderStyle.FixedDialog; f.StartPosition = FormStartPosition.CenterParent; f.Text = PluginTranslate.PluginName; f.MinimizeBox = false; f.MaximizeBox = false; PictureBox pb = new PictureBox(); pb.Size = new Size(bmp.Width, bmp.Height); pb.Location = new Point(0, 0); f.ClientSize = pb.Size; pb.Image = bmp; f.Controls.Add(pb); if (!string.IsNullOrEmpty(otp.Issuer) && (otp.Issuer != PluginTranslate.PluginName)) { Label lIssuer = new Label(); lIssuer.Width = f.ClientSize.Width; lIssuer.Text = otp.Issuer; lIssuer.Location = new Point(0, f.ClientSize.Height + 10); f.Controls.Add(lIssuer); f.Height += lIssuer.Height + 10; } if (!string.IsNullOrEmpty(otp.Label)) { Label lLabel = new Label(); lLabel.Width = f.ClientSize.Width; lLabel.Text = otp.Label; lLabel.Location = new Point(0, f.ClientSize.Height + 10); f.Controls.Add(lLabel); f.Height += lLabel.Height + 10; } f.Height += 5; Timer tClose = new Timer(); tClose.Interval = 30000; tClose.Tick += (o, e1) => { tClose.Stop(); tClose.Dispose(); if (f != null) { f.Close(); } }; f.Shown += (o, e2) => { KeePass.UI.GlobalWindowManager.AddWindow(f, f); tClose.Start(); }; f.FormClosed += (o, e1) => { if (f != null) { KeePass.UI.GlobalWindowManager.RemoveWindow(f); } }; f.ShowDialog(KeePass.UI.GlobalWindowManager.TopWindow); pb.Image.Dispose(); f.Dispose(); qrc.Dispose(); qrd.Dispose(); } catch { } }