Пример #1
0
        public void GenerateQRByQrCodeNet(string content)
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    qrCode    = new QrCode();

            qrEncoder.TryEncode(content, out qrCode);

            GraphicsRenderer renderer = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);

            using (MemoryStream ms = new MemoryStream())
            {
                renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
                Image img = Image.FromStream(ms);
                img.Save("C:/Img/RRR.png");
            }
        }
Пример #2
0
        //初始化生成QRCode的函数
        static void InitQRCode(string qrText)
        {
            //新建QrEncoder类的对象
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
            //新建QrCode类的对象,传入形参
            QrCode qrCode = qrEncoder.Encode(qrText);
            //新建GraphicsRenderer类的对象
            GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);

            //初始化FileStream类的对象,以便生成二维码文件
            using (FileStream stream = new FileStream(FILE_NAME, FileMode.Create))
            {
                //将二维码输出到文件
                render.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream);
            }
        }
Пример #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            // crear un directorio para los codigos
            string ruta = @"C:\Users\frodo\Desktop\codigosQr";

            if (!Directory.Exists(ruta))
            {
                // crear un directorio
                Directory.CreateDirectory(ruta);
            }

            /// generar un codigo QR para los elementos de la caja

            for (int i = 1; i <= 30; i++)
            {
                // crear un encoder, codificador
                QrEncoder Codificador = new QrEncoder(ErrorCorrectionLevel.H);

                // crear un codigo QR
                QrCode Codigo = new QrCode();

                // generar generar  un codigo apartir de datos, y pasar el codigo por referencia
                Codificador.TryEncode("Gonzalez" + i.ToString(), out Codigo);

                // generar un graficador
                GraphicsRenderer Renderisado = new GraphicsRenderer(new FixedCodeSize(200, QuietZoneModules.Zero), Brushes.Black, Brushes.White);

                // generar un flujo de datos
                MemoryStream ms = new MemoryStream();

                // escribir datos en el renderizado
                Renderisado.WriteToStream(Codigo.Matrix, ImageFormat.Png, ms);

                // generar controles para ponerlos en el form
                var ImagenQR    = new Bitmap(ms);
                var ImgenSalida = new Bitmap(ImagenQR, new Size(panel1.Width, panel1.Height));

                // guardar la imagen
                ImgenSalida.Save(ruta + "/" + i.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);

                // asignar la imagen al panel
                panel1.BackgroundImage = ImgenSalida;

                panel1.Refresh();
                System.Threading.Thread.Sleep(500);
            }
        }
Пример #4
0
        public void EncodeToPng(string str, string picpath, QRCodeSaveSize saveSize)
        {
            QrCode qrCode = _qrEncoder.Encode(str);
            //保存成png文件
            GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(Convert.ToInt32(saveSize), QuietZoneModules.Two), Brushes.Black, Brushes.White);

            using (FileStream stream = new FileStream(picpath, FileMode.OpenOrCreate)) //OpenOrCreate打开新文件默认就是truncate的了,如果再显式指定Truncate反而会报错当文件不存在的时候
            {
                render.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream);
            }

            Bitmap   bitmap = new Bitmap(165, 165);
            Graphics g      = Graphics.FromImage(bitmap);

            render.Draw(g, qrCode.Matrix);
            bitmap.Save("a.bmp");
        }
Пример #5
0
        public string CreateQrCode(string source, string pathFile)
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    qrCode    = new QrCode();

            qrEncoder.TryEncode(source, out qrCode);
            GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(8000, QuietZoneModules.Zero), Brushes.Black, Brushes.White);
            MemoryStream     ms       = new MemoryStream();

            renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
            Bitmap imagenTemporal = new Bitmap(ms);
            var    imagen         = new Bitmap(imagenTemporal, new Size(new Point(200, 200)));

            imagen.Save(pathFile, ImageFormat.Png);

            return(pathFile);
        }
Пример #6
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="content">二维码内容,可以是url、文本信息</param>
        /// <param name="savePath">保存地址</param>
        public static void Generate(string content, string savePath)
        {
            // 二维码容错率
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    qrCode    = new QrCode();

            qrEncoder.TryEncode(content, out qrCode);

            using (MemoryStream ms = new MemoryStream())
            {
                var renderer = new GraphicsRenderer(new FixedModuleSize(18, QuietZoneModules.Two));
                renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);

                System.Drawing.Image bitmap = new System.Drawing.Bitmap(ms);
                bitmap.Save(savePath, System.Drawing.Imaging.ImageFormat.Png);
            }
        }
Пример #7
0
        private void tsmiSaveAs_Click(object sender, EventArgs e)
        {
            using (SaveFileDialog saveFileDialog = new SaveFileDialog())
            {
                saveFileDialog.Filter     = @"PNG (*.png)|*.png|JPEG (*.jpg)|*.jpg|Bitmap (*.bmp)|*.bmp|Encapsuled PostScript (*.eps)|*.eps|SVG (*.svg)|*.svg";
                saveFileDialog.FileName   = txtQRCode.Text;
                saveFileDialog.DefaultExt = "png";

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    string filePath = saveFileDialog.FileName;

                    if (filePath.EndsWith("eps"))
                    {
                        // Initialize the EPS renderer
                        EncapsulatedPostScriptRenderer renderer = new EncapsulatedPostScriptRenderer(new FixedModuleSize(6, QuietZoneModules.Two), // Modules size is 6/72th inch (72 points = 1 inch)
                                                                                                     new FormColor(Color.Black), new FormColor(Color.White));
                        BitMatrix matrix = qrMain.GetQrMatrix();
                        using (FileStream fs = new FileStream(filePath, FileMode.Create))
                        {
                            renderer.WriteToStream(matrix, fs);
                        }
                    }
                    else if (filePath.EndsWith("svg"))
                    {
                        // Initialize the EPS renderer
                        SVGRenderer renderer = new SVGRenderer(new FixedModuleSize(6, QuietZoneModules.Two), // Modules size is 6/72th inch (72 points = 1 inch)
                                                               new FormColor(Color.FromArgb(150, 200, 200, 210)), new FormColor(Color.FromArgb(200, 255, 155, 0)));
                        BitMatrix matrix = qrMain.GetQrMatrix();
                        using (FileStream fs = new FileStream(filePath, FileMode.Create))
                        {
                            renderer.WriteToStream(matrix, fs, false);
                        }
                    }
                    else
                    {
                        GraphicsRenderer gRender = new GraphicsRenderer(new FixedModuleSize(20, QuietZoneModules.Two));
                        BitMatrix        matrix  = qrMain.GetQrMatrix();
                        using (FileStream fs = new FileStream(filePath, FileMode.Create))
                        {
                            gRender.WriteToStream(matrix, ImageHelpers.GetImageFormat(filePath), fs);
                        }
                    }
                }
            }
        }
Пример #8
0
        /// <summary>
        /// Utilizando la librería Gma.QrCodeNet creamos una nueva imagen en PNG
        /// que será un código QR con el texto que se le de
        /// </summary>
        /// <param name="guid">Texto que tendrá el código QR</param>
        /// <param name="basePath">Base path</param>
        /// <returns>Regresa el URL en el que se podrá encontrar la imagen recien
        /// guardada</returns>
        public static string CreateQr(string guid, string basePath)
        {
            // Se crea un Stream que tendrá la imagen en JPG utilizando QrCodeNet
            QrEncoder        qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
            QrCode           qrCode    = qrEncoder.Encode(guid);
            GraphicsRenderer renderer  = new GraphicsRenderer(new FixedModuleSize(20, QuietZoneModules.Two), Brushes.Black, Brushes.White);
            MemoryStream     stream    = new MemoryStream();

            renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream, new Point(100, 100));
            // Se crea un path donde se guardará el archivo en el disco duro
            string filePath = Path.Combine(basePath, String.Format("Storage/Qrs/{0}.png", guid));

            PhotoData.SaveQrImageFile(filePath, stream.ToArray());
            stream.Close();
            // Construimos el URL en el que el navegador podrá descargar la imagen
            return(Path.Combine(ConfigurationManager.AppSettings["PhotoPath"], String.Format("Storage/Qrs/{0}.png", guid)));
        }
Пример #9
0
        /// <summary>
        /// 二维码二进制流
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public byte[] QrCodeCreate(string str)
        {
            QrCode           qrcode    = new QrEncoder().Encode(str);
            GraphicsRenderer gRenderer = new GraphicsRenderer(new FixedModuleSize(6, QuietZoneModules.Two), Brushes.Black, Brushes.White);
            MemoryStream     ms        = new MemoryStream();

            gRenderer.WriteToStream(qrcode.Matrix, ImageFormat.Png, ms);
            Image        image = Image.FromStream(ms);
            MemoryStream ms1   = new MemoryStream();

            image.Save(ms1, ImageFormat.Png);
            byte[] arr = new byte[ms1.Length];
            ms1.Position = 0L;
            ms1.Read(arr, 0, (int)ms1.Length);
            ms1.Close();
            return(arr);
        }
Пример #10
0
        public void GeneraQR(string fecha, string cuit, string ptoVtaNComp, string total, string tipoComp)
        {
            string fechaJ    = fecha.Substring(6) + "-" + fecha.Substring(3, 2) + "-" + fecha.Substring(0, 2);
            string cuitJ     = cuit.Replace("-", string.Empty);
            string ptoVta    = ptoVtaNComp.Substring(0, 4);
            string nroComp   = ptoVtaNComp.Substring(5);
            string tipoCompJ = string.Empty;
            string ver       = "1";

            total = total.Replace(",", ".");

            if (tipoComp == "A")
            {
                tipoCompJ = "081";
            }
            else
            {
                tipoCompJ = "082";
            }

            string moneda     = "PES";
            string ctz        = "1";
            string tipoCodAut = "E";
            string codAut     = "70417054367476";
            string jsonS      = "ver:" + ver + ",fecha:" + fechaJ + ",cuit:" + cuitJ + ",ptoVta:" + ptoVta + ",tipoCmp:" + tipoCompJ + ",nroCmp:" + nroComp + ",importe:" + total + ",moneda:" + moneda + ",ctz:" + ctz + ",tipoCodAut:" + tipoCodAut + ",codAut:" + codAut;
            string json64     = Convert.ToBase64String(Encoding.UTF8.GetBytes(jsonS));
            string url        = "https://www.afip.gob.ar/fe/qr/?p=" + json64;

            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    qrCode    = new QrCode();

            qrEncoder.TryEncode(url, out qrCode);
            GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(400, QuietZoneModules.Zero), Brushes.Black, Brushes.White);

            MemoryStream ms = new MemoryStream();

            renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
            var imageTemporal = new Bitmap(ms);
            var imagen        = new Bitmap(imageTemporal, new Size(new Point(200, 200)));

            string filePath = Path.Combine(Application.StartupPath + "\\Reportes", "QR.png");

            Image ImagenGrb = imagen;

            ImagenGrb.Save(filePath);
        }
Пример #11
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="content">内容</param>
        /// <param name="moduleSize">二维码的大小</param>
        /// <param name="filePath">为存放的图片路径</param>
        /// <returns>输出流</returns>
        public static MemoryStream GetQRCode(string content, int moduleSize = 9)
        {
            var              encoder      = new QrEncoder(ErrorCorrectionLevel.M);
            QrCode           qrCode       = encoder.Encode(content);
            GraphicsRenderer render       = new GraphicsRenderer(new FixedModuleSize(moduleSize, QuietZoneModules.Two), Brushes.Black, Brushes.White);
            MemoryStream     memoryStream = new MemoryStream();

            render.WriteToStream(qrCode.Matrix, ImageFormat.Jpeg, memoryStream);
            return(memoryStream);

            //生成图片的代码
            //DrawingSize dSize = render.SizeCalculator.GetSize(qrCode.Matrix.Width);
            //Bitmap map = new Bitmap(dSize.CodeWidth, dSize.CodeWidth);
            //Graphics g = Graphics.FromImage(map);
            //render.Draw(g, qrCode.Matrix);
            //map.Save(fileName, ImageFormat.Jpeg);//fileName为存放的图片路径
        }
Пример #12
0
        /// <summary>
        /// 生成二维码的方法
        /// </summary>
        /// <param name="str">二维码包含的内容</param>
        /// <param name="moduleSize">二维码大小</param>
        /// <param name="no">编号</param>
        private void createQrCode(string content, int no, int moduleSize = 9)
        {
            //QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            //QrCode qrCode = new QrCode();
            //qrEncoder.TryEncode(str, out qrCode);

            string filename = DateTime.Now.ToString("d");

            filename = filename.Replace("/", "");
            filename = filename.Replace(":", "");
            filename = filename.Replace("-", "");
            filename = filename.Replace(".", "");
            filename = filename.Replace(" ", "");
            string filepath = System.AppDomain.CurrentDomain.BaseDirectory + filename;

            if (!Directory.Exists(filepath))
            {
                Directory.CreateDirectory(filepath);
            }

            string fileName = filepath + "\\" + no + ".png";
            //Renderer renderer = new Renderer(5, Brushes.Black, Brushes.White);
            //renderer.CreateImageFile(qrCode.Matrix, @filename, ImageFormat.Png);



            //ErrorCorrectionLevel 误差校正水平
            //QuietZoneModules     空白区域

            var              encoder = new QrEncoder(ErrorCorrectionLevel.M);
            QrCode           qrCode  = encoder.Encode(content);
            GraphicsRenderer render  = new GraphicsRenderer(new FixedModuleSize(moduleSize, QuietZoneModules.Two), Brushes.Black, Brushes.White);

            //MemoryStream memoryStream = new MemoryStream();
            //render.WriteToStream(qrCode.Matrix, ImageFormat.Jpeg, memoryStream);

            //return memoryStream;

            //生成图片的代码
            DrawingSize dSize = render.SizeCalculator.GetSize(qrCode.Matrix.Width);
            Bitmap      map   = new Bitmap(dSize.CodeWidth, dSize.CodeWidth);
            Graphics    g     = Graphics.FromImage(map);

            render.Draw(g, qrCode.Matrix);
            map.Save(fileName, ImageFormat.Png);//fileName为存放的图片路径
        }
Пример #13
0
        protected override void Initialize()
        {
            SettingsFile settings = DataFolder.GetSettingsFile();

            GraphicsRenderer.Initialize(GraphicsDevice, _graphics);
            GraphicsRenderer.ChangeResolution(settings.ResolutionWidth, settings.ResolutionHeight);
            GraphicsRenderer.SetFullscreen(settings.IsFullscreen);

            Camera = new Camera(GraphicsDevice.Viewport);

            InitializeUi();
            Session.Initialize();
            GameWorld.Initialize();
            LoadingScreen.Initialize();

            base.Initialize();
        }
Пример #14
0
        private bool GenCode(string content, out MemoryStream ms)
        {
            ms = new MemoryStream();
            ErrorCorrectionLevel ecl = ErrorCorrectionLevel.M;//误差水平
            QuietZoneModules     qzm = QuietZoneModules.Two;
            int       moduleSize     = 12;
            QrEncoder encoder        = new QrEncoder(ecl);
            QrCode    qr;

            if (encoder.TryEncode(content, out qr))//对内容进行编码,并保存生成的矩阵
            {
                var render = new GraphicsRenderer(new FixedModuleSize(moduleSize, qzm));
                render.WriteToStream(qr.Matrix, ImageFormat.Jpeg, ms);
                return(true);
            }
            return(false);
        }
        private void btnShowQRCode_Click(object sender, EventArgs e)
        {
            var qrGenerator = new QrEncoder();
            var qrCode      = qrGenerator.Encode(_password);

            var gRenderer = new GraphicsRenderer(
                new FixedModuleSize(6, QuietZoneModules.Two));

            using (var ms = new MemoryStream())
            {
                gRenderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
                using (pbQrCode.Image)
                {
                    pbQrCode.Image = new Bitmap(ms);
                }
            }
        }
Пример #16
0
        public static Image GenerateQRCode(string content, int size)
        {
            QrEncoder encoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    qrCode;

            encoder.TryEncode(content, out qrCode);

            GraphicsRenderer gRenderer = new GraphicsRenderer(new FixedModuleSize(4, QuietZoneModules.Two), Brushes.Black, Brushes.White);

            MemoryStream ms = new MemoryStream();

            gRenderer.WriteToStream(qrCode.Matrix, ImageFormat.Bmp, ms);

            var imageTemp = new Bitmap(ms);

            return(new Bitmap(imageTemp, new Size(new Point(size, size))));
        }
Пример #17
0
        private void btnQR_Click(object sender, EventArgs e)
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    qrCode    = new QrCode();
            string    valorQR   = "Hola profe me gustaria que me sacara un 10";

            qrEncoder.TryEncode(valorQR, out qrCode);
            GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(400, QuietZoneModules.Zero), Brushes.Black, Brushes.White);
            MemoryStream     ms       = new MemoryStream();

            renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
            var imageTemporal = new Bitmap(ms);
            var imagen        = new Bitmap(imageTemporal, new Size(new Point(199, 199)));

            imgQR.BackgroundImage = imagen;
            imagen.Save("qr.png", ImageFormat.Png);
        }
Пример #18
0
        private void btnQRHorario_Click(object sender, EventArgs e)
        {
            QrEncoder        codigo = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode           cod;
            GraphicsRenderer renderer;
            FileStream       stream;

            foreach (var iter in lstDatos.Items)
            {
                cod      = codigo.Encode(iter.ToString());
                renderer = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
                using (stream = new FileStream(@"C:\Users\Daniel\Pictures\CodigosQR\codigo.png", FileMode.OpenOrCreate))
                {
                    renderer.WriteToStream(cod.Matrix, ImageFormat.Png, stream);
                }
            }
        }
Пример #19
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public static MemoryStream GetQrCodeImage(string text)
        {
            var    rtnMemoryStream = new MemoryStream();
            var    encoder         = new QrEncoder(ErrorCorrectionLevel.L);
            QrCode qr = null;

            if (!encoder.TryEncode(text, out qr))
            {
                throw new Exception("生成二维码失败");
            }

            var render = new GraphicsRenderer(new FixedModuleSize(8, QuietZoneModules.Zero));

            render.WriteToStream(qr.Matrix, ImageFormat.Png, rtnMemoryStream);

            return(rtnMemoryStream);
        }
Пример #20
0
        /*
         * public static void printList(LTL_LotteryList pNumberList)
         * {
         *  // Configurar impresión para Ticket de Venta
         *  TicketPrinter ticketPrinter = new TicketPrinter();
         *  SaleTicket saleTicket = new SaleTicket();
         *  saleTicket.companyName = UtilityService.getCompanyName();
         *  // Obtener datos del punto de venta
         *  LPS_LotteryPointSale pointSale = UtilityService.getPointSale();
         *  saleTicket.pointSaleName = pointSale.LPS_DisplayName;
         *  // Obtener datos del sorteo
         *  LotteryDrawRepository drawRepo = new LotteryDrawRepository();
         *  LTD_LotteryDraw drawObject = drawRepo.getById(pNumberList.LTD_LotteryDraw);
         *  saleTicket.drawDate = drawObject.LTD_CreateDate;
         *  // Obtener datos de tipo de sorteo
         *  LotteryDrawTypeRepository drawTypeRepo = new LotteryDrawTypeRepository();
         *  LDT_LotteryDrawType drawType = drawTypeRepo.getById(drawObject.LDT_LotteryDrawType);
         *  saleTicket.drawTypeCode = drawType.LDT_Code;
         *  // Llenar datos del número de lista
         *  saleTicket.createDate = DateTime.Now;
         *  saleTicket.ticketId = pNumberList.LTL_Id;
         *  saleTicket.globalId = pointSale.LPS_Id + "" + saleTicket.ticketId;
         *  saleTicket.customerName = pNumberList.LTL_CustomerName;
         *  // Obtener detalle de la lista procesada
         *  LotteryListRepository listRepo = new LotteryListRepository();
         *  saleTicket.listNumberDetail = listRepo.getTupleListDetail(pNumberList.LTL_Id);
         *  ticketPrinter.saleTicket = saleTicket;
         *  // Obtener nombre de impresora y enviar impresión
         *  string printerName = UtilityService.getTicketPrinterName();
         *  ticketPrinter.printLotterySaleTicket(printerName);
         * }
         */

        /*
         * public static void printPrizeTicket(LTD_LotteryDraw pDraw, string[] pWinningNumberArray)
         * {
         *  // Configurar impresión para Ticket de Venta
         *  TicketPrinter ticketPrinter = new TicketPrinter();
         *  PrizeTicket prizeTicket = new PrizeTicket();
         *  prizeTicket.companyName = UtilityService.getCompanyName();
         *  prizeTicket.title = "NÚMEROS PREMIADOS";
         *  // Obtener datos del punto de venta
         *  LPS_LotteryPointSale pointSale = UtilityService.getPointSale();
         *  prizeTicket.pointSaleName = pointSale.LPS_DisplayName;
         *  prizeTicket.drawDate = pDraw.LTD_CreateDate;
         *  // Obtener datos de tipo de sorteo
         *  LotteryDrawTypeRepository drawTypeRepo = new LotteryDrawTypeRepository();
         *  LDT_LotteryDrawType drawType = drawTypeRepo.getById(pDraw.LDT_LotteryDrawType);
         *  prizeTicket.drawTypeCode = drawType.LDT_Code;
         *  // Llenar datos del número de lista
         *  prizeTicket.createDate = DateTime.Now;
         *  // Obtener listado de información de ganadores
         *  LotteryListRepository lotteryListRepository = new LotteryListRepository();
         *  prizeTicket.listWinningInfo = lotteryListRepository.getWinningNumbersList(pDraw, pWinningNumberArray);
         *  prizeTicket.winnerNumbers = pWinningNumberArray;
         *  ticketPrinter.prizeTicket = prizeTicket;
         *  // Obtener nombre de impresora y enviar impresión
         *  string printerName = UtilityService.getTicketPrinterName();
         *  ticketPrinter.printPrizeTicket(printerName);
         * }
         */

        public static Bitmap buildQRCode(string pCodeText, int pBitmapWidth, int pBitmapHeight)
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    qrCode    = new QrCode();

            qrEncoder.TryEncode(pCodeText, out qrCode);

            GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(400, QuietZoneModules.Zero), Brushes.Black, Brushes.White);

            MemoryStream ms = new MemoryStream();

            renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
            Bitmap imageTemporal = new Bitmap(ms);
            Bitmap imagen        = new Bitmap(imageTemporal, new Size(new Point(pBitmapWidth, pBitmapHeight)));

            return(imagen);
        }
Пример #21
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="strContent"></param>
        /// <returns></returns>
        public MemoryStream GetQRCode(string strContent)
        {
            MemoryStream         ms     = new MemoryStream();
            ErrorCorrectionLevel Ecl    = ErrorCorrectionLevel.M; //误差校正水平
            string           Content    = strContent;             //待编码内容
            QuietZoneModules QuietZones = QuietZoneModules.Two;   //空白区域
            int    ModuleSize           = 12;                     //大小
            var    encoder = new QrEncoder(Ecl);
            QrCode qr;

            if (encoder.TryEncode(Content, out qr))//对内容进行编码,并保存生成的矩阵
            {
                var render = new GraphicsRenderer(new FixedModuleSize(ModuleSize, QuietZones));
                render.WriteToStream(qr.Matrix, ImageFormat.Png, ms);
            }
            return(ms);
        }
Пример #22
0
        public int qr()
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    qrCode    = new QrCode();
            String    rambon    = (new Random().Next(1, 1000)).ToString();

            qrEncoder.TryEncode(rambon, out qrCode);

            GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(400, QuietZoneModules.Zero), Brushes.Black, Brushes.White);

            MemoryStream ms = new MemoryStream();

            renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
            var imageTemporal = new Bitmap(ms);

            return(Convert.ToInt32(qrCode.GetHashCode()));
        }
Пример #23
0
 //生成带背景图的二维码图片
 public static byte[] QRCodeHasBackImg(string text, int size, bool contentImg, string fg = "#000000", string bg = "#FFFFFF")
 {
     byte[] result = null;
     using (MemoryStream ms = new MemoryStream())
     {
         QrEncoder encoder = new QrEncoder(ErrorCorrectionLevel.H);
         QrCode    qr;
         if (encoder.TryEncode(text, out qr))
         {
             //背景图存在 则生成带背景图的;
             if (File.Exists(HttpContext.Current.Server.MapPath("~/Images/poster2.jpg")) && contentImg)
             {
                 Image    img = Image.FromFile(HttpContext.Current.Server.MapPath("~/Images/poster2.jpg"));
                 Graphics g   = Graphics.FromImage(img);
                 g.DrawImage(img, 0, 0, 400, 600);
                 Bitmap image = null;
                 using (MemoryStream msQR = new MemoryStream())
                 {
                     GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(400, QuietZoneModules.Zero), new SolidBrush(ColorTranslator.FromHtml(fg)), new SolidBrush(ColorTranslator.FromHtml(bg)));
                     renderer.WriteToStream(qr.Matrix, ImageFormat.Png, msQR);
                     var imageTemp = new Bitmap(msQR);
                     image = new Bitmap(imageTemp, new Size(new Point(size, size)));
                 }
                 g.DrawImage(image, 245, 74, image.Width, image.Height);
                 GC.Collect();
                 img.Save(ms, ImageFormat.Jpeg);
                 result = ms.GetBuffer();
             }
             else
             {
                 //若不存在 则直接生成二维码
                 GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(400, QuietZoneModules.Zero), new SolidBrush(ColorTranslator.FromHtml(fg)), new SolidBrush(ColorTranslator.FromHtml(bg)));
                 renderer.WriteToStream(qr.Matrix, ImageFormat.Png, ms);
                 var imageTemp = new Bitmap(ms);
                 var image     = new Bitmap(imageTemp, new Size(new Point(size, size)));
                 using (MemoryStream ms2 = new MemoryStream())
                 {
                     image.Save(ms2, ImageFormat.Jpeg);
                     result = ms2.GetBuffer();
                 }
             }
         }
     }
     return(result);
 }
Пример #24
0
        public Image Render(MemoryStream ms)
        {
            //Image returnImage = Image.FromStream(ms, true);//Exception occurs here
            //try
            //{
            var render = new GraphicsRenderer(new FixedModuleSize(2, QuietZoneModules.Two));

            render.WriteToStream(Matrix, ImageFormat.Png, ms);
            //ContentType = "image/png";
            var returnImage = Image.FromStream(ms, true);    //Exception occurs here

            //}
            //catch(Exception ex)
            //{
            //var err = ex.Message;
            //}
            return(returnImage);
        }
Пример #25
0
        public static MemoryStream GenQrCode(string content, int size)
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.L);
            QrCode    qrCode;

            qrEncoder.TryEncode(content, out qrCode);

            GraphicsRenderer render = new GraphicsRenderer(new FixedCodeSize(size, QuietZoneModules.Zero), Brushes.Black, Brushes.Transparent);
            MemoryStream     ms     = new MemoryStream();

            Bitmap   bitmap   = new Bitmap(size, size);
            Graphics graphics = Graphics.FromImage(bitmap);

            graphics.Clear(System.Drawing.Color.White);
            render.Draw(graphics, qrCode.Matrix);
            bitmap.Save(ms, ImageFormat.Jpeg);
            return(ms);
        }
Пример #26
0
        private void SaveCodeFile(string content, int col_n, string path)
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode    code      = new QrCode();

            qrEncoder.TryEncode(content, out code);
            const int        modelSizeInPixels = 4;
            GraphicsRenderer render            = new GraphicsRenderer(new FixedModuleSize(modelSizeInPixels, QuietZoneModules.Two)
                                                                      , Brushes.Black, Brushes.White);

            //在目标文件夹创建一个空的.bmp文件
            string filename = path + "/" + Program.getString(col_n) + Program.GetContSplit(content) + ".bmp";

            using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                render.WriteToStream(code.Matrix, ImageFormat.Png, fs);
            }
        }
Пример #27
0
        protected override void InitDict()
        {
            base.InitDict();

            if (cu.type == 1)
            {
                Context.Response.Redirect("/wx/user/index.html");              //仅商户有邀请二维码
            }
            var qr = new QrEncoder();
            var cd = qr.Encode("http://" + cfg.domain + "/wx/invite-" + cu.id + "-" + cu.no + ".html");
            var rd = new GraphicsRenderer(new FixedModuleSize(15, QuietZoneModules.Two));

            using (var ms = new MemoryStream())
            {
                rd.WriteToStream(cd.Matrix, ImageFormat.Jpeg, ms);
                dict.Add("qr", Convert.ToBase64String(ms.ToArray()));
            }
        }
Пример #28
0
 public static string GenerateQRCode(string link)
 {
     try
     {
         QrEncoder qr_encoder = new QrEncoder();
         QrCode    code       = null;
         qr_encoder.TryEncode(link, out code);
         GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(350, QuietZoneModules.Zero), Brushes.Black, Brushes.White);
         MemoryStream     ms       = new MemoryStream();
         renderer.WriteToStream(code.Matrix, ImageFormat.Png, ms);
         return(Convert.ToBase64String(ms.GetBuffer()));
     }
     catch (Exception ex)
     {
         ex.Message.ToString();
         return(null);
     }
 }
Пример #29
0
        protected void SaveQrCode(string text, string filename)
        {//用于保存二维码图像的函数
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
            //设置二维码错误修正率
            QrCode qrCode = qrEncoder.Encode(text);
            //使用text参数进行编码
            GraphicsRenderer renderer = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two),
                                                             Brushes.Black, Brushes.White);
            //实例化Renderer对象,
            string fileurl = "C://Users//Top//Pictures//Saved Pictures//" + filename + ".png";

            using (FileStream stream = new FileStream(fileurl, FileMode.Create))
            {
                renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream);
                //将二维码矩阵写入文件流,设置图片格式为png
            }
            Console.WriteLine("Your QrCode pictures are stored in " + fileurl);
        }
Пример #30
0
        //生成QRCode的函数
        public void DrawQRCode(string qrText)
        {
            //pictureBox1重新生成
            pictureBox1.Refresh();
            //新建QrEncoder类的对象
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
            //新建QrCode类的对象,传入形参
            QrCode qrCode = qrEncoder.Encode(qrText);
            //新建GraphicsRenderer类的对象
            GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
            //确定绘图初始点
            Point padding = new Point(0, 0);
            //实例化Graphics类
            Graphics graphics = pictureBox1.CreateGraphics();

            //将graphics对象导入pictureBox1
            render.Draw(graphics, qrCode.Matrix, padding);
        }