摘要:[Component] QR Code 元件 - Zxing
Zxing是基於Java開發的開源專案,同時開發多種語言類別庫,目前版本2.1版。
主要支援以下語言開發
Java、C++、C#、Ruby、Object-C(QR code only)、Actionscript
用於解析多種格式的條形碼和二維碼
- UPC-A and UPC-E
- EAN-8 and EAN-13
- Code 39
- Code 93
- Code 128
- ITF
- Codabar
- RSS-14 (all variants)
- RSS Expanded (most variants)
- QR Code
- Data Matrix
- Aztec ('beta' quality)
- PDF 417 ('alpha' quality)
使用說明: (以下以不同方案分開建置2個專案說明,建置方式亦可在同一方案裡建置2個專案)
開發環境:Windows 7 Professional Edition 64Bit、Visual Studio 2010 Professional Edition、Zxing 2.1
-
1. 下載原始碼檔案後解壓縮至本地目錄
-
2. Visual Studio 2010開啟新專案(類別庫)
-
3. 將解壓縮的zxing-2.1\csharp目錄內所有檔案複製加入到新專案內
-
4. 建置專案編譯產生.dll
-
5. 開啟欲引用的專案將.dll加入參考
-
6. 程式using以下二個命名空間(產生QR Code)
-
7. 產生QR Code演示
using System; using System.Collections.Generic; using System.Text; using com.google.zxing.common; using com.google.zxing; using System.Drawing; namespace AP_YyQrCode { ///
/// QR Code產生 /// class MyZxingQrCdode { private int _intWidth; //寬度 private int _intHeight; //高度 private Color _clrBack = ColorTranslator.FromHtml("Black"); //QR Code著色顏色 private Color _clrFront = ColorTranslator.FromHtml("White"); //背景顏色 ////// 建構子 /// ///寬度 ///
高度 public MyZxingQrCdode(int intWidth_, int intHeight_) { this._intWidth = intWidth_; this._intHeight = intHeight_; } ///
/// 設定背景顏色 /// public Color BackColor { set { this._clrBack = value; } } ////// 設定QR Code著色顏色 /// public Color FrontColor { set { this._clrFront = value; } } ////// 產生QR Code圖檔 /// ///文字內容 ///
public Image genImage(string strContext) { //依文字、產出格式與寬高產生QR Code內容 ByteMatrix byteMatrix = new MultiFormatWriter().encode(strContext, BarcodeFormat.QR_CODE , this._intWidth, this._intHeight); //初始圖檔 Bitmap bmap = new Bitmap(_intWidth, _intHeight, System.Drawing.Imaging.PixelFormat.Format32bppArgb); //圖檔依QR Code內容著色 for (int x = 0; x < _intWidth; x++) { for (int y = 0; y < _intHeight; y++) { bmap.SetPixel(x, y, byteMatrix.get_Renamed(x, y) != -1 ? this._clrBack : this._clrFront); } } return bmap; } } }