예제 #1
1
        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;
        }
예제 #2
1
파일: QRCodeHelper.cs 프로젝트: MrNor/WxMp
        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;
        }
예제 #3
1
 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;
 }
예제 #5
0
 /// <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);
     }
 }
예제 #6
0
파일: QrCode.cs 프로젝트: fqybzhangji/Crazy
        /// <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;
        }
예제 #7
0
    /*
     * 
     * 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");

    }
예제 #8
0
        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();
            }
        }
예제 #9
0
        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;
        }
예제 #10
0
파일: Form1.cs 프로젝트: Makk24/QR-Code
        /// <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;

            }
        }
예제 #11
0
        /// <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 "";
            }

        }
예제 #12
0
        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();
        }
예제 #13
0
        /*生成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;
        }
예제 #14
0
        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();
            }
        }
예제 #15
0
        /// <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";
        }
예제 #16
0
        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");
        }
예제 #17
0
        public void TestMethod1()
        {
            var encoder = new QRCodeEncoder();
            var content = "QR.NET https://github.com/aaronogan/QR.NET";

            var result = encoder.Encode(content);

            AssertMatrix(result);
        }
예제 #18
0
        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);
        }
예제 #19
0
 /// <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;
 }
예제 #20
0
        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);
        }
예제 #21
0
 /// <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;
 }
예제 #22
0
파일: QRCodeUtil.cs 프로젝트: Bobom/kuanmai
 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;
 }
예제 #23
0
        /// <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);
        }
예제 #24
0
        /// <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;
        }
예제 #25
0
        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;
        }
예제 #26
0
파일: QRGen.cs 프로젝트: Tictaclu/Team7AD
 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);
     }
 }
예제 #27
0
 /// <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;
 }
예제 #28
0
        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");
        }
예제 #30
0
        /// <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;
        }
예제 #31
0
        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";
            }
        }
예제 #32
-1
 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";
 }