public override Bitmap Paint() { ZintNetLib zintNetLib = new ZintNetLib(); zintNetLib.Rotation = (int)_rotate; zintNetLib.Multiplier = _width; zintNetLib.QRCodeErrorLevel = _QRCodeErrorLevel; zintNetLib.QRVersion = (int)_QRsize + 1; zintNetLib.CreateBarcode(BarcodeSymbology, Data); switch (_rotate) { case EnumRotate._0: case EnumRotate._180: default: using (Bitmap bmBarcode = new Bitmap(10000, 10000)) { using (Graphics gr = Graphics.FromImage(bmBarcode)) { var bcSize = zintNetLib.SymbolSize(gr); zintNetLib.DrawBarcode(gr, new System.Drawing.Point(0, 0)); using (Bitmap bmOutput = new Bitmap(bcSize.Width, bcSize.Height)) { using (Graphics grOut = Graphics.FromImage(bmOutput)) { grOut.Clear(System.Drawing.Color.White); grOut.DrawImage(bmBarcode, 0.0f, 0.0f, new RectangleF(0.0f, 0.0f, (float)bcSize.Width, (float)bcSize.Height), GraphicsUnit.Pixel); _imagepixelSize = new System.Windows.Size((float)bcSize.Width, (float)bcSize.Height); } return(new Bitmap(bmOutput)); } } } case EnumRotate._90: case EnumRotate._270: using (Bitmap bmBarcode = new Bitmap(10000, 10000)) { using (Graphics gr = Graphics.FromImage(bmBarcode)) { var bcSize = zintNetLib.SymbolSize(gr); zintNetLib.DrawBarcode(gr, new System.Drawing.Point(0, 0 + (bcSize.Width - bcSize.Height) / 2)); using (Bitmap bmOutput = new Bitmap(bcSize.Height, bcSize.Width)) { using (Graphics grOut = Graphics.FromImage(bmOutput)) { grOut.Clear(System.Drawing.Color.White); grOut.DrawImage(bmBarcode, 0.0f, 0.0f, new RectangleF(0.0f + (bcSize.Width - bcSize.Height) / 2, 0.0f, (float)bcSize.Height, (float)bcSize.Width), GraphicsUnit.Pixel); _imagepixelSize = new System.Windows.Size((float)bcSize.Height, (float)bcSize.Width); } return(new Bitmap(bmOutput)); } } } } }
public override Bitmap Paint() { ZintNetLib zintNetLib = new ZintNetLib(); zintNetLib.TextVisible = _textVisable; zintNetLib.Multiplier = _width; zintNetLib.BarcodeHeight = _height; zintNetLib.Rotation = (int)_rotate; zintNetLib.CreateBarcode(BarcodeSymbology, Data); Font font = new Font(fontfamily, (float)FontSize, (System.Drawing.FontStyle)Enum.ToObject(typeof(System.Drawing.FontStyle), (int)FontStyle)); if (_fontFamily?.ToString() != fontfamily) { _fontFamily = new System.Windows.Media.FontFamily(fontfamily); } zintNetLib.Font = font; zintNetLib.TextAlignment = _textAligment; zintNetLib.TextPosition = _textPosition; if (!zintNetLib.IsValid) { return(null); } switch (_rotate) { case EnumRotate._0: case EnumRotate._180: default: using (Bitmap bmBarcode = new Bitmap(10000, 10000)) { using (Graphics gr = Graphics.FromImage(bmBarcode)) { var bcSize = zintNetLib.SymbolSize(gr); zintNetLib.DrawBarcode(gr, new System.Drawing.Point(0, 0)); using (Bitmap bmOutput = new Bitmap(bcSize.Width, bcSize.Height)) { using (Graphics grOut = Graphics.FromImage(bmOutput)) { grOut.Clear(System.Drawing.Color.White); grOut.DrawImage(bmBarcode, 0.0f, 0.0f, new RectangleF(0.0f, 0.0f, (float)bcSize.Width, (float)bcSize.Height), GraphicsUnit.Pixel); _imagepixelSize = new System.Windows.Size((float)bcSize.Width, (float)bcSize.Height); } return(new Bitmap(bmOutput)); } } } case EnumRotate._90: case EnumRotate._270: using (Bitmap bmBarcode = new Bitmap(10000, 10000)) { using (Graphics gr = Graphics.FromImage(bmBarcode)) { var bcSize = zintNetLib.SymbolSize(gr); zintNetLib.DrawBarcode(gr, new System.Drawing.Point(0, 0 + (bcSize.Width - bcSize.Height) / 2)); using (Bitmap bmOutput = new Bitmap(bcSize.Height, bcSize.Width)) { using (Graphics grOut = Graphics.FromImage(bmOutput)) { grOut.Clear(System.Drawing.Color.White); grOut.DrawImage(bmBarcode, 0.0f, 0.0f, new RectangleF(0.0f + (bcSize.Width - bcSize.Height) / 2, 0.0f, (float)bcSize.Height, (float)bcSize.Width), GraphicsUnit.Pixel); _imagepixelSize = new System.Windows.Size((float)bcSize.Height, (float)bcSize.Width); } return(new Bitmap(bmOutput)); } } } } }
/// <summary> /// 바코드 생성.gwise /// </summary> private void BarcodeCreate() { byte[] data = null; Size symbolSize; Rectangle section = Rectangle.Empty; Bitmap newBitmap = null; if (myBarcode != null && !String.IsNullOrEmpty(barcodeData)) { try { Stopwatch sw = new Stopwatch(); sw.Reset(); sw.Start(); for (int i = 0; i < 1000; i++) { myBarcode.CreateBarcode(symbolID, barcodeData); //using (Bitmap bitmap = new Bitmap(10000, 10000)) using (Bitmap bitmap = new Bitmap(1000, 1000)) //너무 높으면 속도 느림. using (Graphics graphics = Graphics.FromImage(bitmap)) { if (myBarcode.IsValid) { int rotation = myBarcode.Rotation; myBarcode.Rotation = 0; graphics.Clear(Color.White); myBarcode.ElementXDimension = 0.264583f; myBarcode.DrawBarcode(graphics, new Point(2, 2)); symbolSize = myBarcode.SymbolSize(graphics); section.Width = symbolSize.Width + 4; section.Height = symbolSize.Height + 4; newBitmap = CopyBitMapSection(bitmap, section); using (MemoryStream ms = new MemoryStream()) { newBitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); data = ms.ToArray(); } Debug.WriteLine(i.ToString()); } } } sw.Stop(); Console.WriteLine(sw.Elapsed); SaveToImage("gwise.png", ImageFormat.Png); } catch (ZintNetDLLException ex) { outputTextBox.Text = String.Empty; string errorMessage = ex.Message; if (ex.InnerException != null) { errorMessage += ex.InnerException.Message; } System.Windows.Forms.MessageBox.Show(errorMessage, "ZintNet Barcode Demo", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { UpdateMenus(); } } }