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

C#使用QRCode生成海報(bào)圖并嵌入定位帶logo的二維碼

 更新時(shí)間:2024年03月11日 10:13:13   作者:LighT.InEyE  
這篇文章主要為大家詳細(xì)介紹了C#如何使用QRCode生成海報(bào)圖并嵌入定位帶logo的二維碼,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考下

簡(jiǎn)介

本案例適用在市場(chǎng)部同事做推廣營(yíng)銷時(shí)推送個(gè)人專屬鏈接,綁定自身專屬客戶,引導(dǎo)客戶了解產(chǎn)品等各方面業(yè)務(wù)的一種引導(dǎo)模式。

框架環(huán)境介紹

  • 控制臺(tái)應(yīng)用程序
  • .NET  Framework    v4.5.2
  • 組件   QRCoder 
  • vs2019

創(chuàng)建項(xiàng)目

使用vs創(chuàng)建控制臺(tái)應(yīng)用程序,框架版本可以根據(jù)自己實(shí)際情況選擇,

引用與其框架對(duì)應(yīng)不沖突版本組件QRCoder

右鍵項(xiàng)目 吊起NuGet引用資源窗口,在瀏覽處搜索QRCoder插件

準(zhǔn)備業(yè)務(wù)場(chǎng)景所需要的東西 

在項(xiàng)目\bin\Debug下新建四個(gè)文件夾,dingwei  海報(bào)圖模板  ,logo 二維碼logo,new  生成的海報(bào),

user 生成的二維碼logo臨時(shí)存儲(chǔ)區(qū)

業(yè)務(wù)代碼

using QRCoder;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace QRCoder_img
{
    class Program
    {
        static void Main(string[] args)
        {
           
                //業(yè)務(wù)場(chǎng)景:本次是通過一個(gè)表單帶上市場(chǎng)部員工id
                //生成二維碼,并定位到海報(bào)模板上,隨后綁定到該
                //員工,此刻該員工就擁有自己的推廣二維碼
                //假設(shè) 員工id ,真實(shí)業(yè)務(wù)場(chǎng)景應(yīng)從庫中抓取未生成二維碼的員工id,定時(shí)作業(yè)執(zhí)行。
                var id = 1;
                // 要生成的二維碼鏈接
                var url="http://baidu.com?id="+id;
                //生成的二維碼路徑
                string ewm = "";
                //生成二維碼,并返回路徑
                RenderQrCode(url, id, ref ewm);
                //定位生成新的圖
                Image img = Image.FromFile(ewm);
                Image imgBack = Image.FromFile(System.IO.Directory.GetCurrentDirectory() + "/dingwei/1.png");
                Bitmap bmp = CombinImage(270, 270, imgBack, img, 227, 668);
            //最終生成圖的路徑,可在此之后同步數(shù)據(jù)庫,或者其他不同形式業(yè)務(wù)
                string str = System.IO.Directory.GetCurrentDirectory() + "/new/1tg1.png";
                if (System.IO.File.Exists(str))
                    System.IO.File.Delete(str);
                bmp.Save(str, ImageFormat.Png);
                bmp.Clone();
                bmp.Dispose();
                img.Dispose();
                System.IO.File.Delete(ewm);
            
 
        }
 
        /// <summary>
        /// 生成帶有l(wèi)ogo的二維碼
        /// </summary>
        /// <param name="url">二維碼鏈接</param>
        /// <param name="id">市場(chǎng)部用戶id,也作為生成圖的名字標(biāo)識(shí)</param>
        /// <param name="ewm">生成圖的路徑</param>
        public static void RenderQrCode(string url, int id, ref string ewm)
        {
            string level = "L";
            QRCodeGenerator.ECCLevel eccLevel = (QRCodeGenerator.ECCLevel)(level == "L" ? 0 : level == "M" ? 1 : level == "Q" ? 2 : 3);
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(url, eccLevel);
            QRCode qrCode = new QRCode(qrCodeData);
            var imageewm = qrCode.GetGraphic(20, Color.Black, Color.White,
            GetIconBitmap(System.IO.Directory.GetCurrentDirectory() + "/logo/appicon.png"));
            string str = System.IO.Directory.GetCurrentDirectory() + "/user/user" + id + ".jpg";
            if (System.IO.File.Exists(str))
                System.IO.File.Delete(str);
            imageewm.Save(str, ImageFormat.Jpeg);
            imageewm.Clone();
            imageewm.Dispose();
            qrCode.Dispose();
            qrCodeData.Dispose();
            ewm = str;
        }
 
        public static Bitmap GetIconBitmap(string url)
        {
            Bitmap img = null;
            if (url.Length > 0)
            {
                try
                {
                    img = new Bitmap(url);
                }
                catch (Exception)
                {
                }
            }
            return img;
        }
        /// <summary>
        /// 兩張圖合并
        /// </summary>
        /// <param name="width">二維碼繪畫大小</param>
        /// <param name="height">二維碼繪畫大小</param>
        /// <param name="imgBack">模板圖</param>
        /// <param name="img">二維碼圖</param>
        /// <param name="xDeviation">定位x</param>
        /// <param name="yDeviation">定位Y</param>
        /// <returns></returns>
        public static Bitmap CombinImage(int width, int height, Image imgBack, Image img, int xDeviation = 0, int yDeviation = 0)
        {
            Bitmap bmp = new Bitmap(imgBack.Width, imgBack.Height);
            Graphics g = Graphics.FromImage(bmp);
            g.Clear(Color.White);
            g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height);
            g.DrawImage(img, xDeviation, yDeviation, width, height);
            GC.Collect();
            g.Dispose();
            return bmp;
        }
      
    }
}

最終效果 

到此這篇關(guān)于C#使用QRCode生成海報(bào)圖并嵌入定位帶logo的二維碼的文章就介紹到這了,更多相關(guān)C# QRCode生成海報(bào)圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#控制臺(tái)程序如何發(fā)布到服務(wù)器Linux上運(yùn)行

    C#控制臺(tái)程序如何發(fā)布到服務(wù)器Linux上運(yùn)行

    這篇文章主要給大家介紹了關(guān)于C#控制臺(tái)程序如何發(fā)布到服務(wù)器Linux上運(yùn)行的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-11-11
  • C# Onnx實(shí)現(xiàn)DIS高精度圖像二類分割

    C# Onnx實(shí)現(xiàn)DIS高精度圖像二類分割

    這篇文章主要為大家詳細(xì)介紹了C# Onnx實(shí)現(xiàn)DIS高精度圖像二類分割的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • sqlserver備份還原數(shù)據(jù)庫功能封裝分享

    sqlserver備份還原數(shù)據(jù)庫功能封裝分享

    這篇文章主要介紹了sqlserver備份還原數(shù)據(jù)庫功能封裝示例,需要的朋友可以參考下
    2014-03-03
  • WPF基于物理像素繪制圖形

    WPF基于物理像素繪制圖形

    這篇文章介紹了WPF基于物理像素繪制圖形的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#實(shí)現(xiàn)快速比較Word文檔并顯示差異

    C#實(shí)現(xiàn)快速比較Word文檔并顯示差異

    本文將詳細(xì)介紹如何在 C# 中比較 Word 文檔,包括基礎(chǔ)對(duì)比、使用自定義選項(xiàng)忽略格式或特定元素,以及如何控制對(duì)比的精度,無論是對(duì)小型文檔還是復(fù)雜文檔,這些方法都能幫助你快速識(shí)別文檔差異
    2026-04-04
  • 詳解C# wpf如何嵌入外部程序

    詳解C# wpf如何嵌入外部程序

    實(shí)現(xiàn)嵌入各種窗口控件后,其實(shí)還會(huì)有一種需求:嵌入外部程序,我們有時(shí)可能需要嵌入一個(gè)瀏覽器或者或者播放器等一些已有的程序,下面我們就來看看具體操作吧
    2024-04-04
  • DataGridView自定義單元格表示值、Error圖標(biāo)顯示的方法介紹

    DataGridView自定義單元格表示值、Error圖標(biāo)顯示的方法介紹

    這篇文章介紹了DataGridView自定義單元格表示值、Error圖標(biāo)顯示的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • C#將List轉(zhuǎn)換為只讀的List方法與技巧

    C#將List轉(zhuǎn)換為只讀的List方法與技巧

    在 C# 編程的廣闊世界里,數(shù)據(jù)的安全性與穩(wěn)定性始終是我們關(guān)注的焦點(diǎn),當(dāng)涉及到集合數(shù)據(jù)的處理時(shí),有時(shí)我們會(huì)面臨這樣一個(gè)關(guān)鍵需求:將List轉(zhuǎn)換為只讀的List,所以本文給大家介紹了使用C#將List轉(zhuǎn)換為只讀的List的方法與技巧,需要的朋友可以參考下
    2025-01-01
  • WPF利用TextBlock實(shí)現(xiàn)查找結(jié)果高亮顯示效果

    WPF利用TextBlock實(shí)現(xiàn)查找結(jié)果高亮顯示效果

    在應(yīng)用開發(fā)過程中,經(jīng)常遇到這樣的需求:通過關(guān)鍵字查找數(shù)據(jù),把帶有關(guān)鍵字的數(shù)據(jù)顯示出來,同時(shí)在結(jié)果中高亮顯示關(guān)鍵字,所以本文就來和大家介紹一下如何利用TextBlock實(shí)現(xiàn)查找結(jié)果高亮顯示效果吧
    2023-08-08
  • 一文教你如何使用C#開發(fā)一個(gè)Windows后臺(tái)服務(wù)

    一文教你如何使用C#開發(fā)一個(gè)Windows后臺(tái)服務(wù)

    這篇文章主要為大家詳細(xì)介紹了如何基于C#實(shí)現(xiàn)Windows服務(wù)的創(chuàng)建、安裝、啟動(dòng)、停止和卸載,并展示具體的代碼示例和操作步驟,需要的小伙伴可以了解下
    2025-08-08

最新評(píng)論

江达县| 璧山县| 鹿泉市| 邢台县| 怀来县| 于都县| 潼南县| 曲松县| 大港区| 宁南县| 元朗区| 永州市| 托克逊县| 兰西县| 南郑县| 渭南市| 甘南县| 资中县| 沙坪坝区| 调兵山市| 汶川县| 怀集县| 扎鲁特旗| 托里县| 夏邑县| 德州市| 微山县| 东至县| 陵川县| 彭山县| 康平县| 喀喇沁旗| 宜州市| 马鞍山市| 苗栗市| 云阳县| 新源县| 万盛区| 黔西| 隆林| 来宾市|