天天看點

C#生成二維碼(可儲存二維碼圖檔)

https://www.cnblogs.com/wlays/p/7994393.html

1.NuGet中搜尋QRCoder,安裝這個插件。

2.建立一個一般處理程式,代碼:

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            // 生成二維碼的内容
            string strCode = "http://www.xxx.com";
            QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.Q);
            QRCode qrcode = new QRCode(qrCodeData);

            // qrcode.GetGraphic 方法可參考最下發“補充說明”
            Bitmap qrCodeImage = qrcode.GetGraphic(5, Color.Black, Color.White, null, 15, 6, false);
            MemoryStream ms = new MemoryStream();
            qrCodeImage.Save(ms, ImageFormat.Jpeg);

            // 如果想儲存圖檔 可使用  qrCodeImage.Save(filePath);

            // 響應類型
            context.Response.ContentType = "image/Jpeg";
            //輸出字元流
            context.Response.BinaryWrite(ms.ToArray());
            context.Response.End();
        }      

3.使用<img src="Handlers/HandlerQRCode.ashx" />

4.注釋

//補充說明:QRCode.GetGraphic方法參數說明

//Bitmap qrCodeImage = qrcode.GetGraphic(5, Color.Black, Color.White, null, 15, 6, false);

//GetGraphic方法參數說明

//public Bitmap GetGraphic(int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)

//int pixelsPerModule: 生成二維碼圖檔的像素大小 ,我這裡設定的是5

//Color darkColor:暗色 一般設定為Color.Black 黑色

//Color lightColor: 亮色 一般設定為Color.White 白色

//Bitmap icon: 二維碼 水印圖示 例如:Bitmap icon = new Bitmap(context.Server.MapPath("~/images/zs.png")); 預設為NULL ,加上這個二維碼中間會顯示一個圖示

//int iconSizePercent: 水印圖示的大小比例 ,可根據自己的喜好設定

//int iconBorderWidth: 水印圖示的邊框

//bool drawQuietZones: 靜止區,位于二維碼某一邊的空白邊界,用來阻止讀者擷取與正在浏覽的二維碼無關的資訊 即是否繪畫二維碼的空白邊框區域 預設為true

轉載于:https://www.cnblogs.com/xsj1989/p/8757841.html