最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用ThoughtWorks.QRCode生成二維碼

 更新時間:2024年04月23日 08:38:06   作者:初九之潛龍勿用  
ThoughtWorks.QRCode是一款功能強勁的動態(tài)鏈接庫,能夠為.net應(yīng)用生成二維碼,這篇文章主要為大家詳細(xì)介紹了C#使用ThoughtWorks.QRCode生成二維碼的具體方法,需要的可以參考下

關(guān)于 ThoughtWorks.QRCode

二維碼是用某種特定的幾何圖形按一定規(guī)律在平面分布的、黑白相間的、記錄數(shù)據(jù)符號信息的圖形,在應(yīng)用程序開發(fā)中也被廣泛使用,諸如信息獲?。ㄈ珀P(guān)注微信公眾號)、網(wǎng)站跳轉(zhuǎn)(寫入Url)、防偽查詢(反饋查詢結(jié)果)、手機支付(如微信支付、支付寶支付)、會員登錄(掃碼登錄方式)等等。

ThoughtWorks.QRCode是一款功能強勁的動態(tài)鏈接庫,能夠為.net應(yīng)用生成二維碼,QR 全稱為 Quick Response,是一種編碼方式。

開發(fā)運行環(huán)境

操作系統(tǒng): Windows Server 2019 DataCenter

.net版本: .netFramework4.0 或以上

開發(fā)工具:VS2019  C#

方法設(shè)計

public bool CreateQrCode 方法(創(chuàng)建二維碼)調(diào)用參數(shù)見如下表格:

序號參數(shù)名類型說明
1Contentstring要寫入的內(nèi)容,如Url鏈接地址等
2ImagePathstring要生成的目標(biāo)二維碼圖片物理文件路徑
3QRCodeScaleint二維碼像素大小,值越大生成的二維碼圖片像素越高尺寸越大
4backgroundColorSystem.Drawing.Color二維碼的背景顏色,建議設(shè)置為白色
5foreColorSystem.Drawing.Color二維碼的前景顏色,建議設(shè)置為黑色
6logoImage=""string可選擇是否在二維碼圖片中間添加Logo小圖標(biāo),默認(rèn)值為“”字符串,即表示不設(shè)置,如果設(shè)置則填入圖標(biāo)物理文件路徑,方法會判斷該文件是否存在,存在則嘗試添加

本方法返回 bool 值 ,表示填入?yún)?shù) ImagePath 的文件是否存在,為True則表示成功,程序可以后續(xù)繼續(xù)處理其它業(yè)務(wù)。

代碼實現(xiàn)

public bool CreateQrCode(string Content, string ImagePath, int QRCodeScale, System.Drawing.Color backgroundColor,System.Drawing.Color foreColor,string logoImage="")
             {
 
                 ThoughtWorks.QRCode.Codec.QRCodeEncoder encoder = new ThoughtWorks.QRCode.Codec.QRCodeEncoder();
                 encoder.QRCodeEncodeMode = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.BYTE;//編碼方式(注意:BYTE能支持中文,ALPHA_NUMERIC掃描出來的都是數(shù)字)
                 encoder.QRCodeScale = QRCodeScale;//大小(值越大生成的二維碼圖片像素越高)
                 encoder.QRCodeVersion = 0;//版本(注意:設(shè)置為0主要是防止編碼的字符串太長時發(fā)生錯誤)
                 encoder.QRCodeErrorCorrect = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.M;//錯誤效驗、錯誤更正(有4個等級)
                 encoder.QRCodeBackgroundColor = backgroundColor;
                 encoder.QRCodeForegroundColor = foreColor;
 
                 System.Drawing.Bitmap bcodeBitmap = encoder.Encode(Content,Encoding.UTF8);
                 //FileStream fs = new FileStream(ImagePath, FileMode.OpenOrCreate);
                 bcodeBitmap.Save(ImagePath,System.Drawing.Imaging.ImageFormat.Jpeg);
                if (logoImage != "")
                {
                        System.Drawing.Bitmap btm = new System.Drawing.Bitmap(logoImage);
                    System.Drawing.Bitmap copyImage = new System.Drawing.Bitmap(btm,bcodeBitmap.Width / 4,bcodeBitmap.Height / 4);
                    System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bcodeBitmap);
                        int x = bcodeBitmap.Width / 2 - copyImage.Width / 2;
                        int y = bcodeBitmap.Height / 2 - copyImage.Height / 2;
                        g.DrawImage(copyImage, x, y);
                    bcodeBitmap.Save(ImagePath, System.Drawing.Imaging.ImageFormat.Jpeg);
                    //                    CombinImage(bcodeBitmap, "").Save(ImagePath);
                }
 
                IntPtr ip = bcodeBitmap.GetHbitmap();
                 bcodeBitmap.Dispose();
                 //fs.Close();
                 //fs.Dispose();
                 DeleteObject(ip);
                 GC.Collect();
//                 File.Delete(ImagePath);
                 return File.Exists(ImagePath);
             }

調(diào)用示例

假設(shè)服務(wù)器有 d:\logo.jpg 做為二維碼附加圖標(biāo),最終組合生成到 d:\1.jpg。前端頁面放置 Image控件 image1,則示例代碼如下:

bool ss=CreateQrCode("https://www.baidu.com", "d:\\1.jpg", 20, System.Drawing.Color.White, System.Drawing.Color.Black, "d:\\logo.jpg");
if (ss == true)
{
    string result_base64 = ImgToBase64String("d:\\1.jpg", true);
    image1.ImageUrl = result_base64;
    return;   
}

生成結(jié)果如下圖所示:

Logo圖標(biāo)透明化

可以將Logo圖標(biāo)透明化,增加一點樂趣。public void ImageToPNG 方法參數(shù)調(diào)用說明如下:

序號參數(shù)名類型說明
1sourceFilenamestring源圖片文件物理路徑
2pngFilenamestring要生成的png文件物理路徑
3backcolorSystem.Drawing.Color要變透明而要去除的主背景色

實現(xiàn)代碼如下:

public void ImageToPNG(string sourceFilename,string pngFilename,System.Drawing.Color backcolor)
{
 
     System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(sourceFilename);
     bmp.MakeTransparent(System.Drawing.Color.FromArgb(0, backcolor));
     bmp.Save(pngFilename,System.Drawing.Imaging.ImageFormat.Png);
}

調(diào)用示例:

ImageToPNG("d:\\logo.jpg", "d:\\logo.png", System.Drawing.Color.White);
bool ss=mb.CreateQrCode("https://www.baidu.com", "d:\\1.jpg", 20, System.Drawing.Color.White, System.Drawing.Color.Black, "d:\\logo.png");
if (ss == true)
{
    string result_base64 = mb.ImgToBase64String("d:\\1.jpg", true);
    image1.ImageUrl = result_base64;
    return;   
}

生成結(jié)果如下圖所示:

實現(xiàn)方法可以根據(jù)我們的實際開發(fā)需要進一步進行修改,如二維碼圖片的大小、Logo的大小、質(zhì)量等。

如何獲取圖像 base64 數(shù)據(jù)的方法請參照我的文章:《C# 自動填充文字內(nèi)容到指定圖片》

以上就是C#使用ThoughtWorks.QRCode生成二維碼的詳細(xì)內(nèi)容,更多關(guān)于C# ThoughtWorks.QRCode生成二維碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Unity?UGUI的CanvasScaler畫布縮放器組件介紹使用

    Unity?UGUI的CanvasScaler畫布縮放器組件介紹使用

    這篇文章主要為大家介紹了Unity?UGUI的CanvasScaler畫布縮放器組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • C#圖表算法之無向圖

    C#圖表算法之無向圖

    這篇文章介紹了C#圖表算法之無向圖,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#異步任務(wù)延續(xù)的三種底原理解析(最新推薦)

    C#異步任務(wù)延續(xù)的三種底原理解析(最新推薦)

    這篇文章主要介紹了C#異步 任務(wù)延續(xù)的三種底層玩法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-05-05
  • C#利用Spire.Doc for .NET庫將Word文檔轉(zhuǎn)換為EMF格式

    C#利用Spire.Doc for .NET庫將Word文檔轉(zhuǎn)換為EMF格式

    在日常工作中,Word 文檔成為我們處理文本和排版信息不可或缺的工具,然而,當(dāng)我們需要將 Word 文檔的內(nèi)容集成到其他應(yīng)用,可能會帶來一些局限性,本文將深入探討如何在 C# 中利用 Spire.Doc for .NET 庫,高效且高質(zhì)量地將 Word 文檔轉(zhuǎn)換為 EMF 格式
    2025-12-12
  • C#多接口實現(xiàn)、重名成員、顯式實現(xiàn)、接口繼承+抽象類和接口區(qū)別說明

    C#多接口實現(xiàn)、重名成員、顯式實現(xiàn)、接口繼承+抽象類和接口區(qū)別說明

    這段SEO描述融合了“接口顯式實現(xiàn)”、“接口沖突”、“接口繼承”三個核心關(guān)鍵詞,詳細(xì)概括了文章關(guān)于Java接口相關(guān)知識點的講解,包括顯式實現(xiàn)規(guī)則、沖突接口處理方法、接口繼承規(guī)則等內(nèi)容,適合準(zhǔn)備相關(guān)考試或項目開發(fā)的讀者
    2026-06-06
  • Unity3D應(yīng)用之時鐘與鐘表小組件的使用教程

    Unity3D應(yīng)用之時鐘與鐘表小組件的使用教程

    這篇文章主要來和大家詳細(xì)介紹一下Unity3D應(yīng)用開發(fā)中的時鐘和鐘表小組件的使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • C#中字符串分割的多種方式

    C#中字符串分割的多種方式

    在C#編程語言中,字符串處理是日常開發(fā)中不可或缺的一部分,字符串分割是處理文本數(shù)據(jù)時常用的操作,它允許我們將一個長字符串分解成多個子字符串,本文給大家介紹了C#中字符串分割的多種方式,需要的朋友可以參考下
    2025-01-01
  • C#中csv文件與DataTable互相導(dǎo)入處理實例解析

    C#中csv文件與DataTable互相導(dǎo)入處理實例解析

    這篇文章主要介紹了C#中csv文件與DataTable互相導(dǎo)入處理實例解析,非常實用的功能,需要的朋友可以參考下
    2014-08-08
  • C#?VB.NET?將Html轉(zhuǎn)為Excel

    C#?VB.NET?將Html轉(zhuǎn)為Excel

    本文介紹通過C#和VB.NET代碼展示將Html轉(zhuǎn)為Excel文檔的方法。文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定幫助,感興趣的小伙伴可以了解一下
    2022-03-03
  • C#編程調(diào)用Cards.dll實現(xiàn)圖形化發(fā)牌功能示例

    C#編程調(diào)用Cards.dll實現(xiàn)圖形化發(fā)牌功能示例

    這篇文章主要介紹了C#編程調(diào)用Cards.dll實現(xiàn)圖形化發(fā)牌功能,結(jié)合實例形式分析了C#動態(tài)鏈接庫調(diào)用及圖形操作技巧,需要的朋友可以參考下
    2017-06-06

最新評論

皋兰县| 梅州市| 清远市| 林甸县| 丰原市| 无极县| 永济市| 翁牛特旗| 淮阳县| 郴州市| 延安市| 北辰区| 淮北市| 永济市| 黎城县| 乌兰浩特市| 和政县| 堆龙德庆县| 白银市| 英吉沙县| 改则县| 高要市| 来安县| 延边| 噶尔县| 岳池县| 齐齐哈尔市| 屏边| 莱州市| 莱阳市| 宜兰市| 青州市| 微博| 平塘县| 阿鲁科尔沁旗| 江城| 射阳县| 会理县| 方山县| 南宁市| 布尔津县|