protected void GenerateQRCode() { if (_borderQRCode == null || _qrCodeRect == null) { return; } if (string.IsNullOrWhiteSpace(ItemURL)) { _borderQRCode.Visibility = Visibility.Collapsed; return; } try { QrEncoder encoder = new QrEncoder(ErrorCorrectionLevel.M); QrCode qrCode; if (encoder.TryEncode(ItemURL, out qrCode)) { DrawingBrushRenderer dRenderer = new DrawingBrushRenderer(new FixedModuleSize(2, QuietZoneModules.Two), System.Windows.Media.Brushes.Black, System.Windows.Media.Brushes.White); System.Windows.Media.DrawingBrush dBrush = dRenderer.DrawBrush(qrCode.Matrix); _qrCodeRect.Fill = dBrush; _borderQRCode.Visibility = System.Windows.Visibility.Visible; } else { _borderQRCode.Visibility = System.Windows.Visibility.Collapsed; } } catch { _borderQRCode.Visibility = System.Windows.Visibility.Collapsed; } }
public HttpResponseMessage GetQRImg(string wxid, string sid) { var wx = WXManager.Current[wxid]; if (wx == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } var s = new StudentBLL(wx.DBConnect).GetByID(sid).QueryObject; if (s == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H); QrCode qrCode = new QrCode(); //var temp = string.Format("{0}{1}", !string.IsNullOrEmpty(s.IDNumber) ? s.IDNumber : s.ID.PadLeft(18, ' '), s.Name); //var base64 = Convert.ToBase64String(System.Text.ASCIIEncoding.UTF8.GetBytes(temp)); var base64 = s.ID; qrEncoder.TryEncode(base64, out qrCode); var renderer = new DrawingBrushRenderer(new FixedModuleSize(5, QuietZoneModules.Two)); MemoryStream ms = new MemoryStream(); renderer.WriteToStream(qrCode.Matrix, ImageFormatEnum.JPEG, ms); HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); result.Content = new ByteArrayContent(ms.ToArray()); //Inline是直接显示,attachment作为附件下载 result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg"); return(result); }
void DisplayQRCode(string imageUrl) { imageUrl = Common.UrlHelper.GetCorrectedStreamURL(imageUrl); if (string.IsNullOrWhiteSpace(imageUrl)) { brdrQRCode.Visibility = System.Windows.Visibility.Collapsed; return; } try { QrEncoder encoder = new QrEncoder(ErrorCorrectionLevel.M); QrCode qrCode; if (encoder.TryEncode(imageUrl, out qrCode)) { DrawingBrushRenderer dRenderer = new DrawingBrushRenderer(new FixedModuleSize(2, QuietZoneModules.Two), Brushes.Black, Brushes.White); DrawingBrush dBrush = dRenderer.DrawBrush(qrCode.Matrix); rectQRCode.Fill = dBrush; brdrQRCode.Visibility = System.Windows.Visibility.Visible; } else { brdrQRCode.Visibility = System.Windows.Visibility.Collapsed; } } catch { brdrQRCode.Visibility = System.Windows.Visibility.Collapsed; } }
void how_to_print_page_handle(object sender, PrintPageEventArgs e) { int h = (int)(e.PageSettings.PrintableArea.Height); int w = (int)(e.PageSettings.PrintableArea.Width); QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M); float side = e.PageSettings.PrintableArea.Width; side = 100; //=> 1" if (e.PageSettings.PrintableArea.Height < e.PageSettings.PrintableArea.Width) { side = e.PageSettings.PrintableArea.Height; } float modesize = side / 100 * e.Graphics.DpiX; QrCode qrCode = qrEncoder.Encode("0123456789"); //ISizeCalculation iSizeCal = new FixedModuleSize(2, QuietZoneModules.Zero); // This works with the Brady on a very small label ISizeCalculation iSizeCal = new FixedCodeSize((int)modesize - 16, QuietZoneModules.Zero); DrawingBrushRenderer dRenderer = new DrawingBrushRenderer(iSizeCal, System.Windows.Media.Brushes.Black, System.Windows.Media.Brushes.White); string test = "test1"; if (test == "test1") { MemoryStream mem_stream = new MemoryStream(); dRenderer.WriteToStream(qrCode.Matrix, ImageFormatEnum.BMP, mem_stream); Bitmap bitmap = new Bitmap(mem_stream); bitmap.SetResolution(e.Graphics.DpiX, e.Graphics.DpiY); //Graphics graphics = Graphics.FromImage(bitmap); e.Graphics.DrawImage(bitmap, 0, 0); } else { System.Windows.Point dpipoint = new System.Windows.Point(e.Graphics.DpiX, e.Graphics.DpiY); BitmapSource bitmapsource = dRenderer.WriteToBitmapSource(qrCode.Matrix, dpipoint); BitmapFrame bitmapframe = BitmapFrame.Create(bitmapsource); BitmapEncoder bitmapencoder = new BmpBitmapEncoder(); bitmapencoder.Frames.Add(bitmapframe); MemoryStream mem_stream = new MemoryStream(); bitmapencoder.Save(mem_stream); System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(mem_stream); e.Graphics.DrawImage(bitmap, 0, 0); } }
/// <summary> /// Update Geometry if is unlocked. /// </summary> /// <remarks></remarks> internal void UpdateGeometry() { if (m_isLocked) { return; } new QrEncoder(ErrorCorrectLevel).TryEncode(Text, out m_QrCode); OnQrMatrixChanged(new EventArgs()); m_width = m_QrCode.Matrix == null ? 21 : m_QrCode.Matrix.Width; QrGeometry = new DrawingBrushRenderer(new FixedCodeSize(200, QuietZoneModule), DarkBrush, LightBrush).DrawGeometry( m_QrCode.Matrix, 0, 0); }
private void buttonSave_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = @"PNG (*.png)|*.png|Bitmap (*.bmp)|*.bmp|Encapsuled PostScript (*.eps)|*.eps"; saveFileDialog.FileName = Path.GetFileName(GetFileNameProposal()); saveFileDialog.DefaultExt = "png"; if (saveFileDialog.ShowDialog() != DialogResult.OK) { return; } if (saveFileDialog.FileName.EndsWith("eps")) { BitMatrix matrix = qrCodeGraphicControl1.GetQrMatrix(); // Initialize the EPS renderer var renderer = new EncapsulatedPostScriptRenderer( new FixedModuleSize(6, QuietZoneModules.Two), // Modules size is 6/72th inch (72 points = 1 inch) new EPSFormColor(Color.Black), new EPSFormColor(Color.White)); using (var file = File.OpenWrite(saveFileDialog.FileName)) { renderer.WriteToStream(matrix, file); } } else { DrawingBrushRenderer dRender = new DrawingBrushRenderer(new FixedModuleSize(5, QuietZoneModules.Four)); BitMatrix matrix = qrCodeGraphicControl1.GetQrMatrix(); using (FileStream stream = new FileStream(saveFileDialog.FileName, FileMode.Create)) { dRender.WriteToStream(matrix, ImageFormatEnum.PNG, stream); } //WriteableBitmapRenderer wRender = new WriteableBitmapRenderer(new FixedModuleSize(15, QuietZoneModules.Four)); //BitMatrix matrix = qrCodeGraphicControl1.GetQrMatrix(); //using (FileStream stream = new FileStream(saveFileDialog.FileName, FileMode.Create)) //{ // wRender.WriteToStream(matrix, ImageFormatEnum.PNG, stream); //} //GraphicsRenderer gRender = new GraphicsRenderer(new FixedModuleSize(15, QuietZoneModules.Four)); //BitMatrix matrix = qrCodeGraphicControl1.GetQrMatrix(); //using (FileStream stream = new FileStream(saveFileDialog.FileName, FileMode.Create)) //{ // gRender.WriteToStream(matrix, ImageFormat.Png, stream); //} } }
Bitmap encodeToBitMap(string data, double dimension_inches, float dpi_x = 600, float dpi_y = 600, ErrorCorrectionLevel correction_level = ErrorCorrectionLevel.L, QuietZoneModules quite_zone = QuietZoneModules.Zero ) { QrEncoder qrEncoder = new QrEncoder(correction_level); QrCode qrCode = qrEncoder.Encode(data); // Calculate number of pixels. Note we use dpi in x direction // but we should probably use whichever is lowest int pixels = (int)(dimension_inches * dpi_x); // Check whether we have enough space //if (pixels < qrCode.Matrix.Width) //throw new Exception("Too small"); ISizeCalculation iSizeCal = new FixedCodeSize(pixels, quite_zone); DrawingBrushRenderer dRenderer = new DrawingBrushRenderer(iSizeCal, System.Windows.Media.Brushes.Black, System.Windows.Media.Brushes.White); //DrawingBrushRenderer dRenderer = new DrawingBrushRenderer(iSizeCal, System.Windows.Media.Brushes.Black, System.Windows.Media.Brushes.LightGray); MemoryStream mem_stream = new MemoryStream(); dRenderer.WriteToStream(qrCode.Matrix, ImageFormatEnum.BMP, mem_stream); Bitmap bitmap = new Bitmap(mem_stream); bitmap.SetResolution(dpi_x, dpi_y); // A different way to do the same. Just incase the bitmap.SetResolution function does not work //System.Windows.Point dpipoint = new System.Windows.Point(dpi, dpi); //BitmapSource bitmapsource = dRenderer.WriteToBitmapSource(qrCode.Matrix, dpipoint); //MemoryStream outStream = new MemoryStream(); //BitmapEncoder bitmapencoder = new BmpBitmapEncoder(); //BitmapFrame bitmapframe = BitmapFrame.Create(bitmapsource); //bitmapencoder.Frames.Add(bitmapframe); //bitmapencoder.Save(outStream); //Bitmap bitmap = new System.Drawing.Bitmap(outStream); return(bitmap); }
void test1(PrintPageEventArgs e) { int x = Convert.ToInt32(e.PageSettings.PrintableArea.X); int y = Convert.ToInt32(e.PageSettings.PrintableArea.Y); int h = Convert.ToInt32(e.PageSettings.PrintableArea.Height); int w = Convert.ToInt32(e.PageSettings.PrintableArea.Width); Point dpi = new Point(e.PageSettings.PrinterResolution.X, e.PageSettings.PrinterResolution.Y); //e.Graphics.DrawString("This is a test", new Font(FontFamily.GenericSansSerif, 12), Brushes.Blue, new PointF(0, 0)); QrEncoder qrEncoder = new QrEncoder(Gma.QrCodeNet.Encoding.ErrorCorrectionLevel.L); ISizeCalculation iSizeCal = new FixedModuleSize(1, QuietZoneModules.Two); //ISizeCalculation iSizeCal = new FixedCodeSize(25, QuietZoneModules.Two); GraphicsRenderer gRenderer = new GraphicsRenderer(iSizeCal, System.Drawing.Brushes.Black, System.Drawing.Brushes.White); QrCode qrCode1 = qrEncoder.Encode("Victor says hi"); QrCode qrCode2 = qrEncoder.Encode("Victor says goodbye"); QrCode qrCode3 = qrEncoder.Encode("0123456789"); QrCode qrCode4 = qrEncoder.Encode("ABCDEF1234"); DrawingBrushRenderer dRenderer = new DrawingBrushRenderer(iSizeCal, System.Windows.Media.Brushes.Black, System.Windows.Media.Brushes.White); DrawingBrush dBrush = dRenderer.DrawBrush(qrCode1.Matrix); int side = w; if (w > h) { side = h; } gRenderer.Draw(e.Graphics, qrCode1.Matrix); var size = iSizeCal.GetSize(qrCode1.Matrix.Width); Point offset = new Point(size.CodeWidth + 10, 0); gRenderer.Draw(e.Graphics, qrCode2.Matrix, offset); size = iSizeCal.GetSize(qrCode2.Matrix.Width); offset.X += size.CodeWidth + 10; gRenderer.Draw(e.Graphics, qrCode3.Matrix, offset); size = iSizeCal.GetSize(qrCode3.Matrix.Width); offset.X += size.CodeWidth + 10; gRenderer.Draw(e.Graphics, qrCode4.Matrix, offset); using (FileStream stream = new FileStream("test.png", FileMode.Create)) { gRenderer.WriteToStream(qrCode1.Matrix, ImageFormat.Png, stream); gRenderer.WriteToStream(qrCode2.Matrix, ImageFormat.Png, stream); } }
private void SaveImageFile(double imageSize) { SaveFileDialog saveFileDIalog = new SaveFileDialog(); saveFileDIalog.Filter = @"PNG (.png)|*.png|Bitmap (.bmp)|*.bmp|JEPG (.jpg)|*.jpg|GIF (.gif)|*.gif|TIFF (.tiff)|*.tiff|WDP (.wdp)|*.wdp|EPS (.eps)|*.eps"; saveFileDIalog.DefaultExt = ".png"; saveFileDIalog.FileName = "QrCode"; saveFileDIalog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); if (saveFileDIalog.ShowDialog() == false) { return; } string fileName = saveFileDIalog.FileName; ImageFormatEnum imageFormat = ImageFormatEnum.PNG; string fileNameCheck = saveFileDIalog.FileName.ToLower(); if (fileNameCheck.EndsWith("png")) { imageFormat = ImageFormatEnum.PNG; } else if (fileNameCheck.EndsWith("bmp")) { imageFormat = ImageFormatEnum.BMP; } else if (fileNameCheck.EndsWith("jpg")) { imageFormat = ImageFormatEnum.JPEG; } else if (fileNameCheck.EndsWith("gif")) { imageFormat = ImageFormatEnum.GIF; } else if (fileNameCheck.EndsWith("tiff")) { imageFormat = ImageFormatEnum.TIFF; } else if (fileNameCheck.EndsWith("wdp")) { imageFormat = ImageFormatEnum.WDP; } else if (fileNameCheck.EndsWith("eps")) { Properties.Settings.Default.SaveSize = imageSize; Properties.Settings.Default.Save(); CreateEPSImage(imageSize, fileName); return; } else { return; } Properties.Settings.Default.SaveSize = imageSize; Properties.Settings.Default.Save(); int pixelSize = (int)(imageSize * 96); DrawingBrushRenderer dRenderer = new DrawingBrushRenderer(new FixedCodeSize(pixelSize, QuietZoneModules.Two), new SolidColorBrush(DarkColor), new SolidColorBrush(LightColor)); using (FileStream stream = new FileStream(fileName, FileMode.Create)) { dRenderer.WriteToStream(QrMatrix, imageFormat, stream); } }