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 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); } }
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); }
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); } }