Пример #1
0
        // 【生成带Logo二维码】
        private void Create2DOfHaveLogoBtn_Click(object sender, EventArgs e)
        {
            // 1.设置QR二维码的规格
            ZXing.QrCode.QrCodeEncodingOptions qrEncodeOption = new ZXing.QrCode.QrCodeEncodingOptions();
            qrEncodeOption.CharacterSet = "UTF-8"; // 设置编码格式,否则读取'中文'乱码
            qrEncodeOption.Height = 200;
            qrEncodeOption.Width = 200;
            qrEncodeOption.Margin = 1; // 设置周围空白边距

            // 2.生成条形码图片
            ZXing.BarcodeWriter wr = new BarcodeWriter();
            wr.Format = BarcodeFormat.QR_CODE; // 二维码
            wr.Options = qrEncodeOption;
            Bitmap img = wr.Write(this.ContentTxt.Text);

            // 3.在二维码的Bitmap对象上绘制logo图片
            Bitmap logoImg = Bitmap.FromFile("G:\\pics\\logo二维码" + "\\logo.jpg") as Bitmap;
            Graphics g = Graphics.FromImage(img);
            Rectangle logoRec = new Rectangle(); // 设置logo图片的大小和绘制位置
            logoRec.Width = img.Width / 6;
            logoRec.Height = img.Height / 6;
            logoRec.X = img.Width / 2 - logoRec.Width / 2; // 中心点
            logoRec.Y = img.Height / 2 - logoRec.Height / 2;
            g.DrawImage(logoImg, logoRec);

            // 4.保存绘制后的图片
            string filePath = "G:\\pics\\logo二维码" + "\\QR-" + this.ContentTxt.Text + ".jpg";
            img.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);

            // 5.读取保存的图片
            this.ImgPathTxt.Text = filePath;
            this.barCodeImg.Image = img;
            MessageBox.Show("保存成功:" + filePath);
        }
Пример #2
0
        private void btnEncodeOptions_Click(object sender, EventArgs e)
        {
            if (cmbEncoderType.SelectedItem == null)
            {
                MessageBox.Show(this, "Please select a barcode format first.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            try
            {
                EncodingOptions options;
                switch ((BarcodeFormat)cmbEncoderType.SelectedItem)
                {
                case BarcodeFormat.QR_CODE:
                    options = new ZXing.QrCode.QrCodeEncodingOptions
                    {
                        Height = picEncodedBarCode.Height,
                        Width  = picEncodedBarCode.Width
                    };
                    break;

                case BarcodeFormat.PDF_417:
                    options = new ZXing.PDF417.PDF417EncodingOptions
                    {
                        Height = picEncodedBarCode.Height,
                        Width  = picEncodedBarCode.Width
                    };
                    break;

                case BarcodeFormat.DATA_MATRIX:
                    options = new ZXing.Datamatrix.DatamatrixEncodingOptions
                    {
                        Height      = picEncodedBarCode.Height,
                        Width       = picEncodedBarCode.Width,
                        SymbolShape = ZXing.Datamatrix.Encoder.SymbolShapeHint.FORCE_SQUARE,
                        MinSize     = new Dimension(picEncodedBarCode.Width, picEncodedBarCode.Height)
                    };
                    break;

                default:
                    options = new EncodingOptions
                    {
                        Height = picEncodedBarCode.Height,
                        Width  = picEncodedBarCode.Width
                    };
                    break;
                }
                var dlg = new EncodingOptionsForm
                {
                    Options = options
                };
                if (dlg.ShowDialog(this) == DialogResult.OK)
                {
                    EncodingOptions = dlg.Options;
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(this, exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public LoggedMainPage()
        {
            InitializeComponent();
            // Código de ejemplo para traducir ApplicationBar
            BuildLocalizedApplicationBar();
            LoggedUser user = LoggedUser.Instance;

            LoggedUser.Instance.RemoveFriend();
            string          codigo = "http://pis2013.azurewebsites.net/?id=" + user.GetLoggedUser().Id;
            EncodingOptions options;

            options = new ZXing.QrCode.QrCodeEncodingOptions
            {
                Height = 500,
                Width  = 500
            };

            var writer = new ZXing.BarcodeWriter {
                Format = ZXing.BarcodeFormat.QR_CODE, Options = options
            };
            var writeableBitmap = writer.Write(codigo);

            ImgQR.Source = writeableBitmap;

            //UserName.Text =user.GetLoggedUser().Name;
            if (PageTitle.Text == "share")
            {
                PageTitle.FontSize = 95;
            }
        }
Пример #4
0
        private void GetQRCode_Click(object sender, EventArgs e)
        {
            if (eq != null)
            {
                ZXing.QrCode.QrCodeEncodingOptions opt = new ZXing.QrCode.QrCodeEncodingOptions
                {
                    CharacterSet = "utf-8",
                    Height       = 200,
                    Width        = 200
                };

                var writer = new BarcodeWriter
                {
                    Format  = BarcodeFormat.QR_CODE,
                    Options = opt
                };

                string str = eq.Id.ToString() + "," + eq.EquipmentType.name + "," + eq.number;

                Dictionary <EncodeHintType, object> hints = new Dictionary <EncodeHintType, object>();
                hints.Add(EncodeHintType.CHARACTER_SET, "utf-8");

                SaveFileDialog savefile = new SaveFileDialog();
                // set a default file name
                savefile.FileName = eq.EquipmentType.name + "_" + eq.number + ".png";
                // set filters - this can be done in properties as well
                savefile.Filter = "PNG files (*.png)|*.png";

                if (savefile.ShowDialog() == DialogResult.OK)
                {
                    writer.Write(str).Save(savefile.FileName, ImageFormat.Png);
                }
            }
        }
Пример #5
0
        public static Bitmap GetCode(string str,
                                     ErrorCorrectionLevel ec = ErrorCorrectionLevel.MIDDLE,
                                     BarcodeFormat bfType    = BarcodeFormat.QR_CODE,
                                     int nWidth  = 150,
                                     int nHeight = 150,
                                     int nMargin = 0
                                     )
        {
            try
            {
                if (String.IsNullOrEmpty(str))
                {
                    throw new Exception("字符串为空");
                }

                ZXing.QrCode.QrCodeEncodingOptions qrEncodeOption = new ZXing.QrCode.QrCodeEncodingOptions();
                qrEncodeOption.CharacterSet = "UTF-8";
                qrEncodeOption.DisableECI   = true; // Extended Channel Interpretation (ECI) 主要用于特殊的字符集。并不是所有的扫描器都支持这种编码。
                qrEncodeOption.Height       = nHeight;
                qrEncodeOption.Width        = nWidth;
                qrEncodeOption.Margin       = nMargin;
                switch (ec)
                {
                case ErrorCorrectionLevel.HIGH:
                    qrEncodeOption.ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.H; // 纠错级别
                    break;

                case ErrorCorrectionLevel.LOW:
                    qrEncodeOption.ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.L; // 纠错级别
                    break;

                case ErrorCorrectionLevel.MIDDLE:
                    qrEncodeOption.ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.M; // 纠错级别
                    break;

                case ErrorCorrectionLevel.QUE:
                    qrEncodeOption.ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.Q; // 纠错级别
                    break;
                }

                BarcodeWriter writer = new BarcodeWriter();
                writer.Format  = (ZXing.BarcodeFormat)bfType;
                writer.Options = qrEncodeOption;

                // Write 具备生成、写入两个功能
                Bitmap bmp = writer.Write(str);

                using (MemoryStream ms = new MemoryStream())
                    bmp.Save(ms, ImageFormat.Png);
                return(bmp);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #6
0
        private EncodingOptions GetEncodeOptions()
        {
            if (this.cmbEncoderType.SelectedItem == null)
            {
                return(new EncodingOptions());
            }
            BarcodeFormat format = (BarcodeFormat)this.cmbEncoderType.SelectedValue;

            EncodingOptions options;

            switch (format)
            {
            case BarcodeFormat.QR_CODE:
                options = new ZXing.QrCode.QrCodeEncodingOptions()
                {
                    CharacterSet = "UTF-8"
                };

                break;

            case BarcodeFormat.PDF_417:
                options = new ZXing.PDF417.PDF417EncodingOptions()
                {
                    CharacterSet = "UTF-8"
                };
                break;

            case BarcodeFormat.DATA_MATRIX:
                options = new ZXing.Datamatrix.DatamatrixEncodingOptions
                {
                    SymbolShape = ZXing.Datamatrix.Encoder.SymbolShapeHint.FORCE_SQUARE
                };
                break;

            case BarcodeFormat.AZTEC:
                options = new ZXing.Aztec.AztecEncodingOptions();
                break;

            case BarcodeFormat.CODE_128:
                options = new ZXing.OneD.Code128EncodingOptions();
                break;

            default:
                options = new EncodingOptions();
                break;
            }
            if (this.CurrentBarcode != null)
            {
                options.Width  = this.CurrentBarcode.Rect.Width;
                options.Height = this.CurrentBarcode.Rect.Height;
            }
            return(options);
        }
        static int _s_set_ErrorCorrection(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                ZXing.QrCode.QrCodeEncodingOptions gen_to_be_invoked = (ZXing.QrCode.QrCodeEncodingOptions)translator.FastGetCSObj(L, 1);
                gen_to_be_invoked.ErrorCorrection = (ZXing.QrCode.Internal.ErrorCorrectionLevel)translator.GetObject(L, 2, typeof(ZXing.QrCode.Internal.ErrorCorrectionLevel));
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
            return(0);
        }
        static int _g_get_DisableECI(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                ZXing.QrCode.QrCodeEncodingOptions gen_to_be_invoked = (ZXing.QrCode.QrCodeEncodingOptions)translator.FastGetCSObj(L, 1);
                LuaAPI.lua_pushboolean(L, gen_to_be_invoked.DisableECI);
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
            return(1);
        }
        static int _s_set_CharacterSet(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                ZXing.QrCode.QrCodeEncodingOptions gen_to_be_invoked = (ZXing.QrCode.QrCodeEncodingOptions)translator.FastGetCSObj(L, 1);
                gen_to_be_invoked.CharacterSet = LuaAPI.lua_tostring(L, 2);
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
            return(0);
        }
        static int _s_set_QrVersion(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                ZXing.QrCode.QrCodeEncodingOptions gen_to_be_invoked = (ZXing.QrCode.QrCodeEncodingOptions)translator.FastGetCSObj(L, 1);
                System.Nullable <int> gen_value; translator.Get(L, 2, out gen_value);
                gen_to_be_invoked.QrVersion = gen_value;
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
            return(0);
        }
Пример #11
0
        public void SaveInQRcode()
        {
            ZXing.QrCode.QrCodeEncodingOptions opt = new ZXing.QrCode.QrCodeEncodingOptions
            {
                CharacterSet = "utf-8",
                Height       = 200,
                Width        = 200
            };
            IBarcodeWriter writer = new BarcodeWriter
            {
                Format  = BarcodeFormat.QR_CODE,
                Options = opt
            };

            try
            {
                SaveFileDialog savefile = new SaveFileDialog();
                StringBuilder  builder  = new StringBuilder();
                // set a default file name
                savefile.FileName = "unknown.bmp";
                // set filters - this can be done in properties as well
                savefile.Filter = "Bitmap (*.bmp)|*.bmp|All files (*.*)|*.*";

                if (savefile.ShowDialog() == DialogResult.OK)
                {
                    string barstr = "";
                    foreach (ListViewItem item in _sysInf.lVDiskMon.Items)
                    {
                        foreach (ListViewItem.ListViewSubItem subItem in item.SubItems)
                        {
                            builder.Append(subItem.Text).Append(" ");
                        }
                        barstr += "\n" + builder.ToString();
                        builder.Clear();

                        //var barcodeWriter = new BarcodeWriter();

                        // set the barcode format
                        //writer.Format = BarcodeFormat.QR_CODE;


                        // write text and generate a 2-D barcode as a bitmap
                        writer.Write(barstr).Save(savefile.FileName);
                    }
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }
Пример #12
0
        public static Color32[] GenQRCodeRaw(string formatStr, int width, int height)
        {
            ZXing.QrCode.QrCodeEncodingOptions options = new ZXing.QrCode.QrCodeEncodingOptions();
            options.CharacterSet = "UTF-8";
            options.Width        = width;
            options.Height       = height;
            options.Margin       = 1;
            BarcodeWriter barcodeWriter = new BarcodeWriter
            {
                Format  = ZXing.BarcodeFormat.QR_CODE,
                Options = options
            };

            return(barcodeWriter.Write(formatStr));
        }
Пример #13
0
        private void optionChanged()
        {
            Tuple <ZXing.QrCode.Internal.ErrorCorrectionLevel, string> item = getSelectedOptions();

            ZXing.QrCode.QrCodeEncodingOptions options = new ZXing.QrCode.QrCodeEncodingOptions
            {
                DisableECI      = true,
                CharacterSet    = item.Item2,
                Width           = 870,
                Height          = 870,
                ErrorCorrection = item.Item1
            };

            mBarcodeWriter.Options = options;

            drawQRCode();
        }
        static int __CreateInstance(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                if (LuaAPI.lua_gettop(L) == 1)
                {
                    ZXing.QrCode.QrCodeEncodingOptions gen_ret = new ZXing.QrCode.QrCodeEncodingOptions();
                    translator.Push(L, gen_ret);

                    return(1);
                }
            }
            catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
            return(LuaAPI.luaL_error(L, "invalid arguments to ZXing.QrCode.QrCodeEncodingOptions constructor!"));
        }
Пример #15
0
        public Bitmap grant_qrcode(string num_str, int w, int h)
        {
            // 1.设置QR二维码的规格
            ZXing.QrCode.QrCodeEncodingOptions qrEncodeOption = new ZXing.QrCode.QrCodeEncodingOptions();
            qrEncodeOption.CharacterSet = "UTF-8"; // 设置编码格式,否则读取'中文'乱码
            qrEncodeOption.Height       = h;
            qrEncodeOption.Width        = w;
            qrEncodeOption.Margin       = 1; // 设置周围空白边距

            // 2.生成条形码图片并保存
            ZXing.BarcodeWriter wr = new BarcodeWriter();
            wr.Format  = BarcodeFormat.QR_CODE; // 二维码
            wr.Options = qrEncodeOption;
            Bitmap img = wr.Write(num_str);

            return(img);
        }
Пример #16
0
        public byte[] qrGenerator(string toEncode)
        {
            ZXing.QrCode.QrCodeEncodingOptions s = new ZXing.QrCode.QrCodeEncodingOptions();
            s.Height          = 1000;
            s.Width           = 1000;
            s.Margin          = 1;
            s.QrVersion       = 2;
            s.ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.Q;

            var qWriter = new BarcodeWriter();

            qWriter.Format  = BarcodeFormat.QR_CODE;
            qWriter.Options = s;
            Bitmap         img = qWriter.Write(toEncode);
            ImageConverter ic  = new ImageConverter();

            return((byte[])ic.ConvertTo(img, typeof(byte[])));
        }
Пример #17
0
        // 【生成二维码】
        private void Create2DBtn_Click(object sender, EventArgs e)
        {
            // 1.设置QR二维码的规格
            ZXing.QrCode.QrCodeEncodingOptions qrEncodeOption = new ZXing.QrCode.QrCodeEncodingOptions();
            qrEncodeOption.CharacterSet = "UTF-8"; // 设置编码格式,否则读取'中文'乱码
            qrEncodeOption.Height = 200;
            qrEncodeOption.Width = 200;
            qrEncodeOption.Margin = 1; // 设置周围空白边距

            // 2.生成条形码图片并保存
            ZXing.BarcodeWriter wr = new BarcodeWriter();
            wr.Format = BarcodeFormat.QR_CODE; // 二维码 
            wr.Options = qrEncodeOption;
            Bitmap img = wr.Write(this.ContentTxt.Text);
            string filePath = "G:\\pics\\二维码" + "\\QR-" + this.ContentTxt.Text + ".jpg";
            img.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);

            // 3.读取保存的图片
            this.ImgPathTxt.Text = filePath;
            this.barCodeImg.Image = img;
            MessageBox.Show("保存成功:" + filePath);
        }
Пример #18
0
        public static System.IO.MemoryStream GenerateQrcode(string textContent, int height = 100, int width = 100)
        {
            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();

            // instantiate a writer object
            ZXing.BarcodeWriter barcodeWriter = new ZXing.BarcodeWriter();

            // set the barcode format
            ZXing.QrCode.QrCodeEncodingOptions qrCodeEncodingOptions = new ZXing.QrCode.QrCodeEncodingOptions();
            qrCodeEncodingOptions.Margin = 1;
            qrCodeEncodingOptions.Height = height;
            qrCodeEncodingOptions.Width  = width;
            barcodeWriter.Format         = ZXing.BarcodeFormat.QR_CODE;
            barcodeWriter.Options        = qrCodeEncodingOptions;

            // write text and generate a 2-D barcode as a bitmap
            barcodeWriter.Write(textContent).Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);

            memoryStream.Flush();
            memoryStream.Seek(0, System.IO.SeekOrigin.Begin);

            return(memoryStream);
        }
Пример #19
0
        public MainWindow()
        {
            InitializeComponent();

            this.Title = $"二维码生成器 - V {System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()}";

            mBarcodeWriter = new ZXing.BarcodeWriter();

            ZXing.QrCode.QrCodeEncodingOptions options = new ZXing.QrCode.QrCodeEncodingOptions
            {
                DisableECI      = true,
                CharacterSet    = "UTF-8",
                Width           = 870,
                Height          = 870,
                ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.L,
            };

            mBarcodeWriter.Format  = ZXing.BarcodeFormat.QR_CODE;
            mBarcodeWriter.Options = options;

            initEvent();

            this.txtQRCodeContent.AppendText("测试");
        }
Пример #20
0
 private void btnEncodeOptions_Click(object sender, EventArgs e)
 {
    if (cmbEncoderType.SelectedItem == null)
    {
       MessageBox.Show(this, "Please select a barcode format first.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
       return;
    }
    try
    {
       EncodingOptions options;
       switch ((BarcodeFormat)cmbEncoderType.SelectedItem)
       {
          case BarcodeFormat.QR_CODE:
             options = new ZXing.QrCode.QrCodeEncodingOptions
                        {
                           Height = picEncodedBarCode.Height,
                           Width = picEncodedBarCode.Width
                        };
             break;
          case BarcodeFormat.PDF_417:
             options = new ZXing.PDF417.PDF417EncodingOptions
                        {
                           Height = picEncodedBarCode.Height,
                           Width = picEncodedBarCode.Width
                        };
             break;
          case BarcodeFormat.DATA_MATRIX:
             options = new ZXing.Datamatrix.DatamatrixEncodingOptions
             {
                Height = picEncodedBarCode.Height,
                Width = picEncodedBarCode.Width,
                SymbolShape = ZXing.Datamatrix.Encoder.SymbolShapeHint.FORCE_SQUARE,
                MinSize = new Dimension(picEncodedBarCode.Width, picEncodedBarCode.Height)
             };
             break;
          default:
             options = new EncodingOptions
                        {
                           Height = picEncodedBarCode.Height,
                           Width = picEncodedBarCode.Width
                        };
             break;
       }
       var dlg = new EncodingOptionsForm
                    {
                       Options = options
                    };
       if (dlg.ShowDialog(this) == DialogResult.OK)
       {
          EncodingOptions = dlg.Options;
       }
    }
    catch (Exception exc)
    {
       MessageBox.Show(this, exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
 }