private void btnEncode_Click_1(object sender, EventArgs e) { if (txtEncodeData.Text.Trim() == String.Empty) { MessageBox.Show("Data must not be empty."); return; } 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("Invalid size!"); return; } try { int version = Convert.ToInt16(cboVersion.Text); qrCodeEncoder.QRCodeVersion = version; } catch (Exception ex) { MessageBox.Show("Invalid version !"); } 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; string data = txtEncodeData.Text; var encodedData = qrCodeEncoder.Encode(data); var qrImage = new QrImage(); Image image = qrImage.CreateImage(encodedData); picEncode.Image = image; }
public static Bitmap GetqrCode(int i, string content) { Bitmap bt; string enCodeString = content; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeVersion = i; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8); return bt; }
public Bitmap CreateImgCode(string htmlUrl, int size = 4) { //创建二维码生成类 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); //设置编码模式 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置编码测量度 qrCodeEncoder.QRCodeScale = size; //设置编码版本 qrCodeEncoder.QRCodeVersion = 7; //设置编码错误纠正 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //生成二维码图片 return qrCodeEncoder.Encode(CreateQRCode(htmlUrl)); }
public QRCode(string data, string title) { InitializeComponent(); textBox.Text = data; Title = title; var qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeScale = 16; var image = qrCodeEncoder.Encode(data, Encoding.UTF8); var imageSrc = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( image.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromWidthAndHeight(image.Width, image.Height)); imgBox.Source = imageSrc; }
/// <summary> /// 生成二维码,如果有Logo,则在二维码中添加Logo /// </summary> /// <param name="content"></param> /// <returns></returns> public Bitmap CreateQRCode(string content) { QRCodeEncoder qrEncoder = new QRCodeEncoder(); qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrEncoder.QRCodeScale = Convert.ToInt32(txtSize.Text); qrEncoder.QRCodeVersion = Convert.ToInt32(cboVersion.SelectedValue); qrEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; try { Bitmap qrcode = qrEncoder.Encode(content, Encoding.UTF8); if (!logoImagepath.Equals(string.Empty)) { Graphics g = Graphics.FromImage(qrcode); Bitmap bitmapLogo = new Bitmap(logoImagepath); int logoSize = Convert.ToInt32(txtLogoSize.Text); bitmapLogo = new Bitmap(bitmapLogo, new System.Drawing.Size(logoSize, logoSize)); PointF point = new PointF(qrcode.Width / 2 - logoSize / 2, qrcode.Height / 2 - logoSize / 2); g.DrawImage(bitmapLogo, point); } return qrcode; } catch (IndexOutOfRangeException ex) { MessageBox.Show("超出当前二维码版本的容量上限,请选择更高的二维码版本!", "系统提示"); return new Bitmap(100, 100); } catch (Exception ex) { MessageBox.Show("生成二维码出错!", "系统提示"); return new Bitmap(100, 100); } }
/// <summary> /// 生成二维码 /// </summary> /// <param name="data">数据</param> /// <param name="filePath">文件保存路径(绝对路径)</param> /// <param name="hasLogo">二维码图标是否添加图片</param> /// <param name="logoFilePath">图片的路径(绝对路径)</param> /// <returns>true--成功;false--失败</returns> public static bool CreateQRcode(string data, string filePath, bool hasLogo = false, string logoFilePath = "") { bool result = false; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二维码编码(Byte、AlphaNumeric、Numeric) qrCodeEncoder.QRCodeScale = 50;//二维码尺寸(Version为0时,1:26x26,每加1宽和高各加25 qrCodeEncoder.QRCodeVersion = 10;//二维码密集度0-40 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//二维码纠错能力(L:7% M:15% Q:25% H:30%) try { Image card = qrCodeEncoder.Encode(data, Encoding.UTF8); using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write)) { card.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); fs.Close(); } if (hasLogo) { AddLogo(logoFilePath, card, filePath); } card.Dispose(); result = true; } catch (Exception ex) { result = false; } return result; }
/* * * CREATE PROCEDURE [dbo].[ProcCustomPage] ( @Table_Name varchar(5000), --表名 @Sign_Record varchar(50), --主键 @Filter_Condition varchar(1000), --筛选条件,不带where @Page_Size int, --页大小 @Page_Index int, --页索引 @TaxisField varchar(1000), --排序字段 @Taxis_Sign int, --排序方式 1为 DESC, 0为 ASC @Find_RecordList varchar(1000), --查找的字段 @Record_Count int --总记录数 ) AS BEGIN DECLARE @Start_Number int DECLARE @End_Number int DECLARE @TopN_Number int DECLARE @sSQL varchar(8000) if(@Find_RecordList='') BEGIN SELECT @Find_RecordList='*' END SELECT @Start_Number =(@Page_Index-1) * @Page_Size IF @Start_Number<=0 SElECT @Start_Number=0 SELECT @End_Number=@Start_Number+@Page_Size IF @End_Number>@Record_Count SELECT @End_Number=@Record_Count SELECT @TopN_Number=@End_Number-@Start_Number IF @TopN_Number<=0 SELECT @TopN_Number=0 print @TopN_Number print @Start_Number print @End_Number print @Record_Count IF @TaxisField='' begin select @TaxisField=@Sign_Record end IF @Taxis_Sign=0 BEGIN IF @Filter_Condition='' BEGIN SELECT @sSQL='SELECT '+@Find_RecordList+' FROM '+@Table_Name+' WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@TopN_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+' WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@End_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+' ORDER BY '+@TaxisField+') order by '+@TaxisField+' DESC)order by '+@TaxisField END ELSE BEGIN SELECT @sSQL='SELECT '+@Find_RecordList+' FROM '+@Table_Name+' WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@TopN_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+' WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@End_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+' WHERE '+@Filter_Condition+' ORDER BY '+@TaxisField+') and '+@Filter_Condition+' order by '+@TaxisField+' DESC) and '+@Filter_Condition+' order by '+@TaxisField END END ELSE BEGIN IF @Filter_Condition='' BEGIN SELECT @sSQL='SELECT '+@Find_RecordList+' FROM '+@Table_Name+' WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@TopN_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+' WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@End_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+' ORDER BY '+@TaxisField+' DESC) order by '+@TaxisField+')order by '+@TaxisField+' DESC' END ELSE BEGIN SELECT @sSQL='SELECT '+@Find_RecordList+' FROM '+@Table_Name+' WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@TopN_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+' WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@End_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+' WHERE '+@Filter_Condition+' ORDER BY '+@TaxisField+' DESC) and '+@Filter_Condition+' order by '+@TaxisField+') and '+@Filter_Condition+' order by '+@TaxisField+' DESC' END END EXEC (@sSQL) IF @@ERROR<>0 RETURN -3 RETURN 0 END PRINT @sSQL GO * */ #endregion #region SQL2005 分页存储过程 /* * CREATE PROCEDURE [dbo].[GetRecordFromPage] @SelectList VARCHAR(2000), --欲选择字段列表 @TableSource VARCHAR(100), --表名或视图表 @SearchCondition VARCHAR(2000), --查询条件 @OrderExpression VARCHAR(1000), --排序表达式 @PageIndex INT = 1, --页号,从0开始 @PageSize INT = 10 --页尺寸 AS BEGIN IF @SelectList IS NULL OR LTRIM(RTRIM(@SelectList)) = '' BEGIN SET @SelectList = '*' END PRINT @SelectList SET @SearchCondition = ISNULL(@SearchCondition,'') SET @SearchCondition = LTRIM(RTRIM(@SearchCondition)) IF @SearchCondition <> '' BEGIN IF UPPER(SUBSTRING(@SearchCondition,1,5)) <> 'WHERE' BEGIN SET @SearchCondition = 'WHERE ' + @SearchCondition END END PRINT @SearchCondition SET @OrderExpression = ISNULL(@OrderExpression,'') SET @OrderExpression = LTRIM(RTRIM(@OrderExpression)) IF @OrderExpression <> '' BEGIN IF UPPER(SUBSTRING(@OrderExpression,1,5)) <> 'WHERE' BEGIN SET @OrderExpression = 'ORDER BY ' + @OrderExpression END END PRINT @OrderExpression IF @PageIndex IS NULL OR @PageIndex < 1 BEGIN SET @PageIndex = 1 END PRINT @PageIndex IF @PageSize IS NULL OR @PageSize < 1 BEGIN SET @PageSize = 10 END PRINT @PageSize DECLARE @SqlQuery VARCHAR(4000) SET @SqlQuery='SELECT '+@SelectList+',RowNumber FROM (SELECT ' + @SelectList + ',ROW_NUMBER() OVER( '+ @OrderExpression +') AS RowNumber FROM '+@TableSource+' '+ @SearchCondition +') AS RowNumberTableSource WHERE RowNumber BETWEEN ' + CAST(((@PageIndex - 1)* @PageSize+1) AS VARCHAR) + ' AND ' + CAST((@PageIndex * @PageSize) AS VARCHAR) -- ORDER BY ' + @OrderExpression PRINT @SqlQuery SET NOCOUNT ON EXECUTE(@SqlQuery) SET NOCOUNT OFF RETURN @@RowCount END **/ #endregion #endregion public static void create_two(string nr, string regno) { System.Drawing.Bitmap bt; string enCodeString = nr; ThoughtWorks.QRCode.Codec.QRCodeEncoder qrCodeEncoder = new ThoughtWorks.QRCode.Codec.QRCodeEncoder(); qrCodeEncoder.QRCodeScale = 15; qrCodeEncoder.QRCodeVersion = 10; bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8); //bt = qrCodeEncoder.Encode(enCodeString, Encoding.GetEncoding("gb18030")); //string filename = string.Format(DateTime.Now.ToString(), regno) + ".jpg"; string filename = regno; filename = filename.Replace(" ", ""); filename = filename.Replace(":", ""); filename = filename.Replace("-", ""); filename = filename.Replace(".", ""); HttpServerUtility su = HttpContext.Current.Server; bt.Save(su.MapPath("../QRcode/") + filename + ".png"); }
private void GenerateQRCode() { try { var url = "http://" + Request.Url.Authority + "/Index.aspx?rid=" + this.ddlRestaurant.SelectedValue + "&tid=" + this.hTableId.Value; var encoder = new QRCodeEncoder(); encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; encoder.QRCodeScale = 8; encoder.QRCodeVersion = 7; encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; using (var ms = new MemoryStream()) { using (Bitmap bmp = encoder.Encode(url)) { bmp.Save(ms, ImageFormat.Jpeg); Response.ClearContent(); Response.ContentEncoding = Encoding.UTF8; Response.ContentType = "image/jpeg"; Response.AppendHeader("Content-Disposition", "attachment; filename=QRcode.jpg"); Response.BinaryWrite(ms.ToArray()); Response.Flush(); Response.End(); } } } catch (Exception ex) { this.lMsg.InnerText = "生成二维码失败,原因:" + ex.ToString(); } }
private Bitmap CreatQRCode(string qrCodeContent) { Bitmap bt; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; // support different mode qrCodeEncoder.QRCodeScale = 10; qrCodeEncoder.QRCodeVersion = 0; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //动态调整二维码版本号,上限40,过长返回空白图片,编码后字符最大字节长度2953 while (true) { try { bt = qrCodeEncoder.Encode(qrCodeContent, System.Text.Encoding.UTF8); break; } catch (IndexOutOfRangeException e) { if (qrCodeEncoder.QRCodeVersion < 40) { qrCodeEncoder.QRCodeVersion++; } else { bt = new Bitmap(100, 100); break; } } } return bt; }
/// <summary> /// 编码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { if (this.textBox1.Text != "") { Cursor.Current = Cursors.WaitCursor; if (textBox1.Text.Trim() == String.Empty) { MessageBox.Show("不能为空."); return; } QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 7; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; System.Drawing.Image image; String data = textBox1.Text; //编码 //string code = Server.UrlEncode(this.txtSourc.Text.Trim().ToString()); image = qrCodeEncoder.Encode(data,Encoding.UTF8); //图片显示 this.pictureBox1.Image = image; Cursor.Current = Cursors.Default; } }
/// <summary> /// 生成二维码图片 /// </summary> /// <param name="str">字符串</param> /// <param name="size">图片大小</param> /// <param name="path">图片位置 /// 例如 /abc/abc/ /// </param> /// <returns>返回生成的二维码图片路径</returns> public string Create(string str, int size, string path) { try { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); //设置编码模式 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置编码测量度 qrCodeEncoder.QRCodeScale = size; //设置编码版本 qrCodeEncoder.QRCodeVersion = 8; //设置编码错误纠正 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; System.Drawing.Image image = qrCodeEncoder.Encode(str); string filename = "~" + path + Guid.NewGuid() + ".jpg"; image.Save(HttpContext.Current.Request.MapPath(filename)); return filename.Replace("~", ""); } catch (Exception) { return ""; } }
public static void ShowSignCheck(Guid notaryId, byte[] code) { string url = string.Format( "https://pivote.piratenpartei.ch/set.aspx?id={0}&c={1}", notaryId.ToString(), code.ToHexString()); GenerateSignCheckDialog dialog = new GenerateSignCheckDialog(); dialog.browseLink.Text = url; QRCodeEncoder qrEncoder = new QRCodeEncoder(); qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; qrEncoder.QRCodeVersion = 7; qrEncoder.QRCodeScale = 10; Image qrImage = qrEncoder.Encode(url);; var image = new Bitmap(qrImage.Width / 4 * 6, qrImage.Height / 4 * 6); var graphics = Graphics.FromImage(image); graphics.Clear(Color.White); graphics.DrawImage(qrImage, (float)qrImage.Width / 4f, (float)qrImage.Height / 4f); graphics.Flush(); dialog.qrCodeImage.Image = image; dialog.ShowDialog(); }
/*生成QR码 GuidToQRCode(string sGuid)*/ public Image GuidToQRCode(string sGuid) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; Image image = qrCodeEncoder.Encode(sGuid); return image; }
protected void Page_Load(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Request.QueryString["data"])) { string str = Request.QueryString["data"]; //初始化二维码生成工具 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; qrCodeEncoder.QRCodeVersion = 0; qrCodeEncoder.QRCodeScale = 4; //将字符串生成二维码图片 Bitmap image = qrCodeEncoder.Encode(str, Encoding.Default); //保存为PNG到内存流 MemoryStream ms = new MemoryStream(); image.Save(ms, ImageFormat.Png); //输出二维码图片 Response.BinaryWrite(ms.GetBuffer()); Response.End(); } }
/// <summary> /// 生成二维码 /// </summary> /// <param name="qrCodeContent">要编码的内容</param> /// <returns>返回二维码位图</returns> public static string QRCodeEncoderUtil(string qrCodeContent) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeVersion = 0; if (!(qrCodeContent.Contains("http://") || qrCodeContent.Contains("https://"))) qrCodeContent = "https://" + qrCodeContent; Bitmap img = qrCodeEncoder.Encode(qrCodeContent,Encoding.UTF8); //指定UTF8编码,支持中文 string str =System.Web.HttpContext.Current.Server.MapPath("~"); //存储本地路径 string name = DateTime.Now.Millisecond.ToString(); StringBuilder sbuilder = new StringBuilder(); sbuilder.Append(str); sbuilder.Append(@"\images\"); sbuilder.Append("QR" + name + ".jpg"); img.Save(sbuilder.ToString()); //获取服务器路径 HttpRequest req = HttpContext.Current.Request; string serverpath = req.ServerVariables["SERVER_NAME"]; if (req.ServerVariables["SERVER_PORT"] != null && !"".Equals(req.ServerVariables["SERVER_PORT"]) && !"80".Equals(req.ServerVariables["SERVER_PORT"])) { serverpath += ":" + req.ServerVariables["SERVER_PORT"]; } //return System.Web.HttpContext.Current.Server.MapPath("/Images/QR" + name + ".jpg"); 返回的还是物理路径 return "http://" + serverpath + "/Images/QR"+name+".jpg"; }
public ActionResult GetQRCode(string str) { HttpContextBase context = this.HttpContext; if(string.IsNullOrEmpty(str))str = context.Request.ServerVariables["HTTP_REFERER"]; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 7; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; System.Drawing.Bitmap bmp; String data = str; bmp = qrCodeEncoder.Encode(data); MemoryStream ms = new MemoryStream(); try { bmp.Save(ms, ImageFormat.Png); } finally { //显式释放资源 bmp.Dispose(); ms.Dispose(); } byte[] bytes = ms.ToArray(); return File(bytes, @"image/png"); }
public void TestMethod1() { var encoder = new QRCodeEncoder(); var content = "QR.NET https://github.com/aaronogan/QR.NET"; var result = encoder.Encode(content); AssertMatrix(result); }
public static Image GetQRImage(string url) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 5; qrCodeEncoder.QRCodeVersion = 7; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; return qrCodeEncoder.Encode(url); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="data">生成内容</param> /// <returns>图片</returns> public static System.Drawing.Image AutoCreateQRcode(string data) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = Convert.ToInt16(7); qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; string filename = DateTime.Now.ToString("yyyy-MM-ddhhmmss") + ".png"; Bitmap bm = qrCodeEncoder.Encode(data); return bm; }
private void CreateQRCode(string url) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 7; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; imageQRCode.Image = qrCodeEncoder.Encode(url); }
/// <summary> /// 自动创建二维码 /// </summary> /// <param name="content">二维码内容</param> /// <returns></returns> public static byte[] AutoCreateQRCode(string content) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = Convert.ToInt16(7); qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; string filename = DateTime.Now.ToString("yyyy-MM-ddhhmmss") + ".png"; Bitmap bm = qrCodeEncoder.Encode(content); MemoryStream ms = new MemoryStream(); bm.Save(ms, System.Drawing.Imaging.ImageFormat.Png); byte[] bytes = ms.ToArray(); ms.Close(); return bytes; }
public static Bitmap Create_ImgCode(string codeNumber, int size) { //创建二维码生成类 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); //设置编码模式 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置编码测量度 qrCodeEncoder.QRCodeScale = size; //设置编码版本 qrCodeEncoder.QRCodeVersion = 0; //设置编码错误纠正 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //生成二维码图片 System.Drawing.Bitmap image = qrCodeEncoder.Encode(codeNumber); return image; }
/// <summary> /// Encodes a QR code, making the best choice based on string length /// (apparently not provided by QR lib?) /// </summary> public static Bitmap EncodeQRCode(string what) { if (what == null || what == "") return null; // Determine if we can use alphanumeric encoding (e.g. public key hex) Regex r = new Regex("^[0-9A-F]{63,154}$"); bool IsAlphanumeric = r.IsMatch(what); QRCodeEncoder qr = new QRCodeEncoder(); if (IsAlphanumeric) { qr.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; if (what.Length > 154) { return null; } else if (what.Length > 67) { // 5L is good to 154 alphanumeric characters qr.QRCodeVersion = 5; qr.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; } else { // 4Q is good to 67 alphanumeric characters qr.QRCodeVersion = 4; qr.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; } } else { if (what.Length > 84) { // We don't intend to encode any alphanumeric strings longer than confirmation codes at 75 characters return null; } else if (what.Length > 62) { // 5M is good to 84 characters qr.QRCodeVersion = 5; qr.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; } else if (what.Length > 34) { // 4M is good to 62 characters qr.QRCodeVersion = 4; qr.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; } else if (what.Length > 32) { // 4H is good to 34 characters qr.QRCodeVersion = 4; qr.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; } else { // 3Q is good to 32 characters qr.QRCodeVersion = 3; qr.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; } } return qr.Encode(what); }
/// <summary> /// Procédure publique permettant de générer le QrCode contenant l'id du participant et de placer cette image dans le PictureBox présent dans l'interface de l'application /// </summary> public void GenereQrCode() { // création et instanciation de l'objet QrCode QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); // paramètres de cet objet// qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 7; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; System.Drawing.Image image; //donnée présente dans le QrCode(ici l'id du participant séléctionné dans le combobox) String data = CmbParticipant.SelectedValue.ToString(); //on crée l'image contenant le QrCode image = qrCodeEncoder.Encode(data); //On place l'image crée dans le PictureBox situé dans l'interface de l'application picEncode.Image = image; }
private void txtPrintContentQRCode_TextChanged(object sender, TextChangedEventArgs e) { ThoughtWorks.QRCode.Codec.QRCodeEncoder encoder = new ThoughtWorks.QRCode.Codec.QRCodeEncoder(); //encoder.QRCodeBackgroundColor = System.Drawing.Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF);//白色 encoder.QRCodeBackgroundColor = System.Drawing.Color.FromArgb(0x00, 0xBF, 0xBF, 0xBF); //和背景颜色一样的透明色 encoder.QRCodeForegroundColor = System.Drawing.Color.FromArgb(0xFF, 0x00, 0x00, 0x00); //黑色 //设置编码格式 encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //编码方法 //设置规模和版本 encoder.QRCodeScale = 9; //大小 encoder.QRCodeVersion = 4; //版本 //设置错误校验(错误更正)的级别 encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; System.Drawing.Bitmap bp = encoder.Encode(tbxPrintContent.Text.ToString(), Encoding.GetEncoding("GB2312")); BitmapSource bs = Imaging.CreateBitmapSourceFromHBitmap(bp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); imagePrintContentQRCode.Source = bs; }
public void qrcodegenerator(string content, string from, string destination) { String data = content; if (!string.IsNullOrEmpty(data)) { 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(data); System.IO.MemoryStream MStream = new System.IO.MemoryStream(); image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png); System.IO.MemoryStream MStream1 = new System.IO.MemoryStream(); CombinImage(image, from).Save(MStream1, System.Drawing.Imaging.ImageFormat.Png); Image img = System.Drawing.Image.FromStream(MStream1); img.Save(destination, ImageFormat.Jpeg); } }
/// <summary> /// 生成二维码 /// </summary> /// <param name="FileUpload_QRCode">上传图片控件</param> /// <param name="str">生成二维码网址</param> /// <param name="filename">保存二维码图片地址</param> /// <returns></returns> public static bool ToQRCode(FileUpload FileUpload_QRCode, string str, string filename) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; qrCodeEncoder.QRCodeVersion = 8; qrCodeEncoder.QRCodeScale = 4; //二维码 Bitmap image = qrCodeEncoder.Encode(str, Encoding.Default); if (FileUpload_QRCode.HasFile) { string CodeLogo = FileUpload_QRCode.FileName; MyHelper.SaveAs(FileUpload_QRCode, System.Web.HttpContext.Current.Server.MapPath("../upload/"), CodeLogo); System.Drawing.Image bt = CombinImage(image, System.Web.HttpContext.Current.Server.MapPath(string.Format("../upload/{0}", CodeLogo))); } //将image保存到filename image.Save(filename); return true; }
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; }
// // GET: /QRCode/ public FileResult Index() { QRCodeEncoder encoder = new QRCodeEncoder(); string strCoder = "http://wx.ahoo.me/"; Bitmap bm = encoder.Encode(strCoder, System.Text.Encoding.UTF8); MemoryStream stream = new MemoryStream(); bm.Save(stream, System.Drawing.Imaging.ImageFormat.Png); QRCodeDecoder decoder = new QRCodeDecoder(); QRCodeBitmapImage qcImg = new QRCodeBitmapImage(bm); string img_text = decoder.decode(qcImg, System.Text.Encoding.UTF8); return File(stream.GetBuffer(), "image/png"); }
/// <summary> /// 生成二维码. /// </summary> /// <param name="data">需要添加进去的文本</param> /// <returns></returns> public static System.Drawing.Image GCode(String data) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 5; qrCodeEncoder.QRCodeVersion = 7; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; var pbImg = qrCodeEncoder.Encode(data, System.Text.Encoding.UTF8); var width = pbImg.Width / 10; var dwidth = width * 2; Bitmap bmp = new Bitmap(pbImg.Width + dwidth, pbImg.Height + dwidth); Graphics g = Graphics.FromImage(bmp); var c = System.Drawing.Color.White; g.FillRectangle(new SolidBrush(c), 0, 0, pbImg.Width + dwidth, pbImg.Height + dwidth); g.DrawImage(pbImg, width, width); g.Dispose(); return bmp; }
private void create_two(string nr,string name) { Bitmap bt; string enCodeString = nr; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); bt=qrCodeEncoder.Encode(enCodeString,Encoding.UTF8);//注意编码 bool dx = File.Exists("~/image/" + name + ".jpg"); if (dx) { File.Delete("~/image/" + name + ".jpg"); bt.Save(Server.MapPath("~/image/" + name + ".jpg")); this.Image1.ImageUrl = "~/image/" + name + ".jpg"; } else { bt.Save(Server.MapPath("~/image/" + name + ".jpg")); this.Image1.ImageUrl = "~/image/" + name + ".jpg"; } }
public void CreateQRCode(string userName) { Bitmap bt; string enCodeString = userName; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8); //string filename = string.Format(DateTime.Now.ToString(), "yyyymmddhhmmss"); //filename = filename.Replace(" ", ""); //filename = filename.Replace(":", ""); //filename = filename.Replace("-", ""); //filename = filename.Replace(".", ""); //filename = filename + userName; bt.Save(System.Web.HttpContext.Current.Server.MapPath("~/QRCode/") + userName + ".bmp"); //this.Image1.ImageUrl = "~/Images/" + filename + ".jpg"; }