public QRImage(QRCodeEncoder encoder) { this.Encoder = encoder; this.QRCodeBackgroundColor = Color.White; this.QRCodeForegroundColor = Color.Black; }
protected void guardarQR(string cuenta) { string URL = "http://planodigital.tigre.gov.ar/verificar.aspx?cuenta=" + cuenta + ""; string ruta = Server.MapPath("/Archivos/qr/" + cuenta + ".png"); QRCodeEncoder encoder = new QRCodeEncoder(); Bitmap qrcode = encoder.Encode(URL); qrcode.Save(ruta); lblSelec.Text = ruta; }
/// <summary> /// 返回二维码图片 /// </summary> public static Bitmap Encode(string text) { var qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 5; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; return(qrCodeEncoder.Encode(text)); }
/// <summary> /// 根据链接获取二维码 /// </summary> /// <param name="url">链接</param> /// <returns>返回二维码图片</returns> public static Image GetQRCodeBmp(string url) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 0; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; return(qrCodeEncoder.Encode(url)); }
/// <summary> /// 创建临时二维码图片(保存通讯录、vcard) /// </summary> /// <param name="text">二维码图片内信息</param> /// <param name="file">二维码图片路径</param> public static void CreateTempQrCode(string text, string file) { QRCodeEncoder qrencoder = new QRCodeEncoder(); qrencoder.QRCodeEncodeMode = EncodeMode; qrencoder.QRCodeVersion = 0; qrencoder.QRCodeScale = CodeScale; qrencoder.QRCodeErrorCorrect = ErrorCorrection; CreateQrCodeImg(text, file, qrencoder); }
void LoadQRCode(String eventid, String room) { string url = "http://wsv-att1snd.uol.le.ac.uk/registration.aspx?event=" + eventid + "&room=" + room; QRCodeEncoder encoder = new QRCodeEncoder(); Bitmap hi = encoder.Encode(url); hi.Save(Server.MapPath("~/images/ji.jpg"), ImageFormat.Jpeg); img.ImageUrl = "~/images/ji.jpg"; }
public static System.Drawing.Image GetPictureFromText(string code) { QRCodeEncoder encoder = new QRCodeEncoder(); encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //ALPHA_NUMERIC, nonostante il nome, non va bene per codificare un GUID. encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; encoder.QRCodeVersion = 3; return(encoder.Encode(code)); }
public void GenerateQRCode(string textToEncode) { QRCodeEncoder encoder = new QRCodeEncoder(); encoder.QRCodeScale = 8; Bitmap bmp = encoder.Encode(textToEncode); string filename = Guid.NewGuid().ToString("n").Substring(0, 8); bmp.Save(filename, ImageFormat.Jpeg); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="qrCodeContent"></param> /// <returns></returns> public static Bitmap GenerateQRCode(string qrCodeContent) { QRCodeEncoder encoder = new QRCodeEncoder { QRCodeVersion = 0 }; Bitmap img = encoder.Encode(qrCodeContent, Encoding.UTF8); return(img); }
private void button2_Click(object sender, EventArgs e) { Random rand = new Random(); //создаём новый генератор рандомных чисел int i = rand.Next(100000, 999999); // в переменную i заносим рандомное число в пределах от 100000 до 999999 (все шестизначные числа) string qrimage = Convert.ToString(i); //конвеорируем i в string и записываем его значение в переменную qrimage QRCodeEncoder encoder = new QRCodeEncoder(); // создаём новое кодирование qr-кода Bitmap qrcode = encoder.Encode(qrimage); // получаем закодированное изображение в классе работы с изображением bitmap. pictureBox1.Image = qrcode as Image; // выводит полученное изображение как рисунок в pictureBox1. }
public Image QrGen() { QRCodeEncoder encoder = new QRCodeEncoder(); encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; encoder.QRCodeScale = 3; Bitmap img = encoder.Encode(ReptileId); return(img); }
public ActionResult<string> GetQRCode(Guid gid) { var item = _context.WorkTicket.Find(gid); if (item == null) { return NotFound(); } string result = QRCodeEncoder.Encoder(item); return result; }
public static BitmapSource Str2QRCodeImg(string code) { QRCodeEncoder qRCodeEncoder = new QRCodeEncoder(); qRCodeEncoder.QRCodeVersion = 0; System.Drawing.Bitmap bmp = qRCodeEncoder.Encode(code, Encoding.UTF8); BitmapSource bi = ImageUtil.CrateBitmapSourceFromBitmap(bmp); return(bi); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="qrCodeContent">要编码的内容</param> /// <returns>返回二维码位图</returns> public static Bitmap QRCodeEncoderUtil(string qrCodeContent) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder { QRCodeVersion = 0 }; Bitmap img = qrCodeEncoder.Encode(qrCodeContent, Encoding.UTF8);//指定utf-8编码, 支持中文 return(img); }
/// <summary> /// Generates a QR code based on the input. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void generate_button_Click(object sender, EventArgs e) { var path = path_textbox.Text; var encoder = new QRCodeEncoder(); var code = encoder.Encode(path); pictureBox1.Image = code; save_button.Enabled = true; print_qr_code_button.Enabled = true; }
public string CreateQRCodeImage(string id) { QRCodeEncoder encoder = new QRCodeEncoder(); Bitmap img = encoder.Encode(id.ToString()); string path = Server.MapPath("~/QRCodes/") + id + ".jpg"; img.Save(path, ImageFormat.Jpeg); return(path); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="name">二维码图片的文件名</param> /// <param name="data">要生成的文字或者数字,支持中文。如: "801000" </param> /// <param name="encoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param> /// <param name="level">大小:L M Q H</param> /// <param name="scale">比例:如 4</param> /// <param name="version">版本:如 8</param> /// <returns></returns> public static void QRCodeCreate(string encoding, string level, int scale, int version, string data, string filepath) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); switch (encoding) { case "Byte": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; case "AlphaNumeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; break; case "Numeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; break; default: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; } switch (level) { case "L": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; break; case "M": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; break; case "Q": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; break; default: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; break; } qrCodeEncoder.QRCodeScale = scale; qrCodeEncoder.QRCodeVersion = version; //文字生成图片 System.Drawing.Image image = qrCodeEncoder.Encode(data); //string filename = name + ".jpg"; //string filepath = HttpContext.Current.Server.MapPath(@"~\upload\qrcode") + "\\" + filename; //如果文件夹不存在,则创建 //string directory = HttpContext.Current.Server.MapPath(@"~\upload\qrcode"); //if (!Directory.Exists(directory)) // Directory.CreateDirectory(directory); System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); fs.Close(); image.Dispose(); }
/// <summary> /// 生成二维码方法(复杂) /// </summary> /// <param name="strData">要生成的文字或者数字,支持中文。如: "15377541070 上海 Akon_Coder</param> /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param> /// <param name="level">大小:L M Q H</param> /// <param name="version">版本:如 8</param> /// <param name="scale">比例:如 4</param> /// <returns></returns> public static string CreateCode_Choose(string strData, string qrEncoding, string level, int version, int scale) { var qrCodeEncoder = new QRCodeEncoder(); string encoding = qrEncoding; switch (encoding) { case "Byte": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; case "AlphaNumeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; break; case "Numeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; break; default: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; } qrCodeEncoder.QRCodeScale = scale; qrCodeEncoder.QRCodeVersion = version; switch (level) { case "L": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; break; case "M": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; break; case "Q": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; break; default: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; break; } //文字生成图片 Image image = qrCodeEncoder.Encode(strData); var filename = DateTime.Now.ToString("yyyymmddhhmmssfff") + ".jpg"; var filepath = AppDomain.CurrentDomain.BaseDirectory + @"\UploadPic\" + filename; var fs = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write); image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); fs.Close(); image.Dispose(); return(filepath); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="Content">内容文本</param> /// <param name="QRCodeEncodeMode">二维码编码方式</param> /// <param name="QRCodeErrorCorrect">纠错码等级</param> /// <param name="QRCodeVersion">二维码版本号 0-40,一般使用8</param> /// <param name="QRCodeScale">每个小方格的预设宽度(像素),正整数</param> /// <param name="size">图片尺寸(像素),0表示不设置</param> /// <returns></returns> internal static Image CreateQRCode(string Content, QRCodeEncoder.ENCODE_MODE QRCodeEncodeMode, QRCodeEncoder.ERROR_CORRECTION QRCodeErrorCorrect, int QRCodeVersion, int QRCodeScale, int size) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncodeMode; qrCodeEncoder.QRCodeErrorCorrect = QRCodeErrorCorrect; qrCodeEncoder.QRCodeScale = QRCodeScale; qrCodeEncoder.QRCodeVersion = QRCodeVersion; System.Drawing.Image image = qrCodeEncoder.Encode(Content, Encoding.UTF8); #region 根据设定的目标图片尺寸调整二维码QRCodeScale设置,并添加边框 if (size > 0) { #region 当设定目标图片尺寸大于生成的尺寸时,逐步增大方格尺寸,直至图片尺寸达到接近size的最大值 while (image.Width < size) { qrCodeEncoder.QRCodeScale++; System.Drawing.Image imageNew = qrCodeEncoder.Encode(Content, Encoding.UTF8); if (imageNew.Width < size) { image = new Bitmap(imageNew); imageNew.Dispose(); imageNew = null; } else { //新尺寸未采用,恢复最终使用的尺寸 qrCodeEncoder.QRCodeScale--; imageNew.Dispose(); imageNew = null; break; } } #endregion #region 当设定目标图片尺寸小于生成的尺寸时,逐步减小方格尺寸 while (image.Width > size && qrCodeEncoder.QRCodeScale > 1) { qrCodeEncoder.QRCodeScale--; System.Drawing.Image imageNew = qrCodeEncoder.Encode(Content, Encoding.UTF8); image = new System.Drawing.Bitmap(imageNew); imageNew.Dispose(); imageNew = null; if (image.Width < size) { break; } } #endregion } #endregion return(image); }
// POST: /Customers/ExportCard public FileResult ExportCard(int ContractID, int CustomerID) { IList <Customers> listData = new List <Customers>(); CustomersData data = new CustomersData(); listData = data.Get(CustomerID); try { string yourcode = CustomerID + ":" + ContractID; string firstText = listData[0].CustomerName; string secondText = "(" + listData[0].CustomerNickName + ")"; PointF firstLocation = new PointF(550f, 250f); PointF secondLocation = new PointF(550f, 300f); string imageFilePath = Server.MapPath("~/Content/bg_1.png"); Bitmap bitmap = new Bitmap(1800, 1400); bitmap = (Bitmap)Image.FromFile(imageFilePath);//load the image file //string imageFilePath1 = Server.MapPath("~/Content/qr1.png"); //Bitmap bitmap1 = new Bitmap(400, 400); //bitmap1 = (Bitmap)Image.FromFile(imageFilePath1.ToString());//load the image file QRCodeEncoder enc = new QRCodeEncoder(); enc.QRCodeScale = 5; Bitmap qrcode = enc.Encode(yourcode); using (Graphics graphics = Graphics.FromImage(bitmap)) { using (Font arialFont = new Font("Cordia New", 30)) { graphics.DrawString(firstText, arialFont, Brushes.White, firstLocation); graphics.DrawString(secondText, new Font("Cordia New", 30), Brushes.White, secondLocation); graphics.DrawImage(qrcode.Clone(new Rectangle(0, 0, qrcode.Width - 1, qrcode.Height - 1), qrcode.PixelFormat), new Point(200, 200)); } } MemoryStream ms = new MemoryStream(); bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); bitmap.Save(Server.MapPath("~/Content/img1.jpg"), System.Drawing.Imaging.ImageFormat.Png); return(File(Server.MapPath("~/Content/img1.jpg"), System.Net.Mime.MediaTypeNames.Application.Octet, "MEMBER" + (CustomerID * 1000) + ContractID + ".png")); } catch (Exception) { throw; } }
private Image GetQRImage(string data) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; try { //14 2920bit/8=365byte 16 3624/8=453byte 18 4504=536byte 20 5352=669byte qrCodeEncoder.QRCodeScale = Int16.Parse(System.Configuration.ConfigurationManager.AppSettings["QRCodeScale"]); } catch (Exception ex) { qrCodeEncoder.QRCodeScale = 2; } try { //14 2920bit/8=365byte 16 3624/8=453byte 18 4504=536byte 20 5352=669byte qrCodeEncoder.QRCodeVersion = Int16.Parse(System.Configuration.ConfigurationManager.AppSettings["QRCodeVersion"]); } catch (Exception ex) { qrCodeEncoder.QRCodeVersion = 16; } string errorCorrect = "M"; if (errorCorrect == "L") { qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; } else if (errorCorrect == "M") { qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; } else if (errorCorrect == "Q") { qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; } else if (errorCorrect == "H") { qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; } Image image; //,System.Text.Encoding.UTF8 int length = data.Length; image = qrCodeEncoder.Encode(data, System.Text.Encoding.GetEncoding("gb2312")); return(image); }
public void Qrcode() { string url = "http://mc.cargocargo.cn/cardshare"; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 8; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; System.Drawing.Image image = qrCodeEncoder.Encode(url); }
public static Bitmap ToQRCode(string strText, string filename) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; qrCodeEncoder.QRCodeVersion = 7; qrCodeEncoder.QRCodeScale = 4; //生成图像 return(qrCodeEncoder.Encode(strText, Encoding.Default)); }
private Image generateQrCode(string data, int kkLevel) { QRCodeEncoder qe = new QRCodeEncoder(); qe.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qe.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; qe.QRCodeVersion = kkLevel; Bitmap bm = qe.Encode(data); return(bm); }
/// <summary> /// 生成二维码图片 /// </summary> /// <param name="strText">图片中的文本信息</param> /// <param name="filename"></param> /// <returns></returns> public static Bitmap ToQRCode(string strText) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置二维码编码格式 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //设置错误校验 qrCodeEncoder.QRCodeVersion = 7; //设置编码测量度 4 qrCodeEncoder.QRCodeScale = 4; //设置编码版本 0 //生成图像 return(qrCodeEncoder.Encode(strText, Encoding.Default)); }
public ActionResult getDecode(int no) { QRCodeEncoder enc = new QRCodeEncoder(); QRCodeDecoder dec = new QRCodeDecoder(); //string aaa = (dec.decode(new QRCodeBitmapImage(qrcode))); Bitmap b = new Bitmap(Path.Combine(Server.MapPath("/App_Data/" + no + ".jpg"))); string aaaaa = (dec.decode(new QRCodeBitmapImage(b))); return(Json(new { success = true })); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="strData">要生成的文字或者数字,支持中文。如: "4408810820 深圳-广州" 或者:4444444444</param> /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param> /// <param name="level">大小:L M Q H</param> /// <param name="version">版本:如 8</param> /// <param name="scale">比例:如 4</param> /// <returns></returns> public string CreateCode_Choose(string strData, string qrEncoding, string level, int version, int scale) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); string encoding = qrEncoding; switch (encoding) { case "Byte": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; case "AlphaNumeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; break; case "Numeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; break; default: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; } qrCodeEncoder.QRCodeScale = scale; qrCodeEncoder.QRCodeVersion = version; switch (level) { case "L": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; break; case "M": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; break; case "Q": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; break; default: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; break; } System.Drawing.Image image = qrCodeEncoder.Encode(strData); string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; string filepath = Server.MapPath(@"~\WeiXinZhiFu\Upload") + "\\" + filename; System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); fs.Close(); image.Dispose(); return(string.Format(@"/Upload/" + filename)); }
public Image CreateQRCode(string data) { Image img = null; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); if (encoding == "Byte") { qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; } else if (encoding == "AlphaNumeric") { qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; } else if (encoding == "Numeric") { qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; } try { qrCodeEncoder.QRCodeScale = scale; } catch { return(img); } try { qrCodeEncoder.QRCodeVersion = version; } catch { return(img); } if (errorCorrect == "L") { qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; } else if (errorCorrect == "M") { qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; } else if (errorCorrect == "Q") { qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; } else if (errorCorrect == "H") { qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; } img = qrCodeEncoder.Encode(data); return(img); }
/// <summary> /// /// </summary> /// <param name="keyValue"></param> /// <param name="filePath"></param> /// <param name="equiptype"></param> public void BuilderImg10(string keyValue, string filePath, string equiptype) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder { QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE, QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M, QRCodeVersion = 21, QRCodeScale = 3, QRCodeForegroundColor = System.Drawing.Color.Black }; float size = 301, margin = 1f; System.Drawing.Image image = qrCodeEncoder.Encode(keyValue + "|" + equiptype, Encoding.UTF8); int resWidth = (int)(size + 2 * margin); int resHeight = (int)(size + 2 * margin); // 核心就是这里新建一个bitmap对象然后将image在这里渲染 Bitmap newBit = new Bitmap(resWidth, resHeight, PixelFormat.Format32bppRgb); Graphics gg = Graphics.FromImage(newBit); // 设置背景白色 for (int x = 0; x < resWidth; x++) { for (int y = 0; y < resHeight; y++) { newBit.SetPixel(x, y, System.Drawing.Color.White); } } // 设置黑色边框 for (int i = 0; i < resWidth; i++) { newBit.SetPixel(i, 0, System.Drawing.Color.Black); newBit.SetPixel(i, resHeight - 1, System.Drawing.Color.Black); } for (int j = 0; j < resHeight; j++) { newBit.SetPixel(0, j, System.Drawing.Color.Black); newBit.SetPixel(resWidth - 1, j, System.Drawing.Color.Black); } RectangleF desRect = new RectangleF() { X = margin, Y = margin, Width = size, Height = size }; RectangleF srcRect = new RectangleF() { X = 0, Y = 0, Width = image.Width, Height = image.Height }; gg.DrawImage(image, desRect, srcRect, GraphicsUnit.Pixel); newBit.Save(filePath, ImageFormat.Jpeg); newBit.Dispose(); image.Dispose(); }
Bitmap GenerateQR(string s) { QRCodeEncoder qrencode = new QRCodeEncoder(); qrencode.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrencode.QRCodeScale = 5; qrencode.QRCodeVersion = 7; qrencode.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; return(qrencode.Encode(s)); }
/// 生成二维码 /// </summary> /// <param name="strData">要生成的文字或者数字,支持中文。如: "4408810820 深圳-广州" 或者:4444444444</param> /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param> /// <param name="level">纠错编码:L(%7字码可被修改) M(%15字码可被修改) Q(%25字码可被修改) H(%30字码可被修改) </param> /// <param name="version">版本:如 8</param> /// <param name="scale">比例:如 4</param> /// <returns>返回二维码图片</returns> public static Image CreateQRCodeImage(string strData, string qrEncoding, string level, int version, int scale) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); string encoding = qrEncoding; switch (encoding) { case "Byte": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; case "AlphaNumeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; break; case "Numeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; break; default: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; } qrCodeEncoder.QRCodeScale = scale; qrCodeEncoder.QRCodeVersion = version; switch (level) { case "L": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; break; case "M": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; break; case "Q": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; break; default: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; break; } //文字生成图片 Bitmap image = qrCodeEncoder.Encode(strData, Encoding.Default); return(image); //System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); //image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); //fs.Close(); //image.Dispose(); //return Content(@"/Upload/" + filename); }
public void DecodeImageTest() { QRCodeEncoder encoder = new QRCodeEncoder(); encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; encoder.QRCodeVersion = 4; string content = "Hello World"; var cellWidth = 6; var img = new QRImage(encoder).EncodeImage(content, cellWidth); Assert.IsNotNull(img, "Image is not null"); QRCodeDecoder decoder = new QRCodeDecoder(); QRCodeBitmapImage bitmapImg = new QRCodeBitmapImage(img); var result = decoder.decode(bitmapImg); Assert.AreEqual(content, result); }
public void EncodeDataTest() { QRCodeEncoder target = new QRCodeEncoder(); target.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; target.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; target.QRCodeVersion = 4; string content = "Hello World"; bool[][] expected = helloWorldQRData; bool[][] actual; actual = target.EncodeData(content); Assert.AreEqual<int>(expected.Length, actual.Length, "Lengths equal"); string msgForm = "Value Same: [{0},{1}]"; for (int row = 0; row < actual.Length; row++) { for (int col = 0; col < actual.Length; col++) { // Note the comparison col, row are switched because my exported data is backwards Assert.AreEqual(expected[row][col], actual[col][row], string.Format(msgForm, col, row)); } } }
public void EncodeImageTest() { QRCodeEncoder encoder = new QRCodeEncoder(); encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; encoder.QRCodeVersion = 4; string content = "Hello World"; var cellWidth = 6; var img = new QRImage(encoder).EncodeImage(content, cellWidth); Assert.IsNotNull(img, "Image is not null"); var halfCellWidth = cellWidth / 2; var cells = encoder.EncodeData(content); for (int i = 0; i < cells.Length; i++) { for (int j = 0; j < cells.Length; j++) { // Add offset for middle of cell. var x = (i * cellWidth) + halfCellWidth; var y = (j * cellWidth) + halfCellWidth; var pixColor = img.GetPixel(x, y); var expected = cells[i][j] ? Color.Black : Color.White; Assert.AreEqual(expected.R, pixColor.R); Assert.AreEqual(expected.G, pixColor.G); Assert.AreEqual(expected.B, pixColor.B); } } img.Save("HelloWorld" + new Random().Next(100, 999) + "_QR.bmp"); }
/// <summary> /// Draws the qr. /// </summary> /// <param name="text">The text.</param> /// <param name="metrics">The metrics.</param> /// <returns></returns> protected virtual Image DrawQr(string text, BarcodeMetricsQr metrics) { QRCodeEncoder encoder = new QRCodeEncoder { Scale = metrics.Scale, Version = metrics.Version, EncodeMode = metrics.EncodeMode, ErrorCorrect = metrics.ErrorCorrection, }; return encoder.Encode(text); }
/// <summary> /// Gets a <see cref="T:Zen.Barcode.BarcodeMetrics"/> object containing default /// settings for the specified maximum bar height. /// </summary> /// <param name="maxHeight">The maximum barcode height.</param> /// <returns> /// A <see cref="T:Zen.Barcode.BarcodeMetrics"/> object. /// </returns> public override BarcodeMetrics GetDefaultMetrics(int maxHeight) { QRCodeEncoder temp = new QRCodeEncoder(); return new BarcodeMetricsQr { Scale = temp.Scale, Version = temp.Version, EncodeMode = temp.EncodeMode, ErrorCorrection = temp.ErrorCorrect, }; }
private bool isQrCodeError(QRCodeEncoder qrCodeEncoder, String data) { try { qrCodeEncoder.calQrcode(Encoding.UTF8.GetBytes(data)); return false; } catch { return true; } }
/// <summary> /// 设置二维码参数 /// </summary> private QRCodeEncoder SetQrCodeParam() { QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder(); string encoding = cboEncoding.Text; if (encoding == "Byte") { _qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; } else if (encoding == "AlphaNumeric") { _qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; } else if (encoding == "Numeric") { _qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; } try { int scale = Convert.ToInt16(txtSize.Text); _qrCodeEncoder.QRCodeScale = scale; } catch (Exception ex) { MessageBox.Show("无效的大小!"); return null; } try { //版本为0时,自动识别 int version = 0; //int version = Convert.ToInt16(cboVersion.Text); _qrCodeEncoder.QRCodeVersion = version; } catch (Exception ex) { MessageBox.Show("无效的版本!"); } string errorCorrect = cboCorrectionLevel.Text;//类型框 if (errorCorrect == "L") _qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; else if (errorCorrect == "M") _qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; else if (errorCorrect == "Q") _qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; else if (errorCorrect == "H") _qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; return _qrCodeEncoder; }