C#產生二維碼名片

來源:互聯網
上載者:User

標籤:

摘自《31天學會CRM項目開發<C#編程入門級項目實戰>》

本例將使用ThoughtWorks.QRCode類庫產生二維碼名片。正式編碼前,先瞭解一下什麼是vCard?它是一種用於定義電子名片的標準或規範。手機通訊錄可匯出vCard格式。片段21-15是一段vCard格式的文本,從資料結構上看並不複雜,按照格式填充相關資訊,以二維碼方式輸出。

 

    BEGIN:VCARD      FN:張三      TITLE:技術總監      ORG:青島**軟體有限公司;ERP事業部      TEL;CELL:18605327777      TEL;WORK:+86 0532 86887777      TEL;WORK;FAX:+86 0532 86887778      ADR;WORK:青島市市南區香港路100號      URL:www.huiyaosoft.com      EMAIL;WORK:[email protected]      NOTE:      X-QQ:      PHOTO;ENCODING=b;TYPE=JPEG:      END:VCARD  

 

 主要開發步驟如下:

(1)    繪製表單21-7所示

(2)    添加引用ThoughtWorks.QRCode.dll
(3)    片段21-16使用ThoughtWorks.QRCode將名片資訊輸出到pictureBox1上,資訊量越大,二維碼圖片也就越大。如果圖片比較小,資訊量比較大,所產生的二維碼不易識別。行31-34示範了在二維碼圖片中添加Logo的方法,之所以可加入Logo是因為二維碼自身有一定錯誤修正能力。
程式碼片段21-16

    public static Bitmap GetTwoDimensionCode(string strSource,          string text, int width, int height, string fontName)      {          // 建立Bitmap對象          Bitmap bmp = new Bitmap(width, height);          // 從image建立 Graphics對象          Graphics objGraphics = Graphics.FromImage(bmp);          // 填上背景色          objGraphics.FillRectangle(Brushes.White, 0, 0, bmp.Width, bmp.Height);          //            ThoughtWorks.QRCode.Codec.QRCodeEncoder qrCodeEncoder =               new ThoughtWorks.QRCode.Codec.QRCodeEncoder();          // 設定編碼方法          qrCodeEncoder.QRCodeEncodeMode =               ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.BYTE;          // 設定大小          qrCodeEncoder.QRCodeScale = 3;          // 適用於資訊量較少的情形,映像越小儲存的資訊量越少          // qrCodeEncoder.QRCodeScale = 4;          // 設定版本          qrCodeEncoder.QRCodeVersion = 0;          // 設定錯誤校正的層級,正因為二維碼有錯誤修正能力,才能夠加入logo          qrCodeEncoder.QRCodeErrorCorrect =               ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.M;          Image image = qrCodeEncoder.Encode(strSource, Encoding.GetEncoding("utf-8"));          // 寫入二維碼          int x = (int)(width - image.Width) / 2;          int y = (int)(height - image.Height) / 2;          objGraphics.DrawImage(image, new Point(x, y));          // 添加Logo表徵圖          image = TwoDimensionCodeNameCard.Properties.Resources.Apps_tux_icon;          x = (int)(width - image.Width) / 2;          y = (int)(height - image.Height) / 2;          objGraphics.DrawImage(image, new Point(x, y));          return bmp;      }  

程式碼片段21-16中,行34通過DrawImage()方法向objGraphics指定位置加入映像image,程式碼片段21-17示範了使用DrawString()方法向objGraphics指定位置增加字串text的過程。

程式碼片段21-17

    // 寫入字串      objGraphics.DrawString(text, new Font(fontName, 13, FontStyle.Bold),           Brushes.Black, new PointF(43, 15));  

樣本下載:http://download.csdn.net/detail/daiqianjie/9472868

 

C#產生二維碼名片

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.