QRCode加解密範例

QRCode Library採用:   http://twit88.com/platform/projects/show/mt-qrcode


QRCode Library微調:

1. 所有Unicode編碼由Encoding.UnicodeEncoding 改為 Encoding.UTF8Encoding,避免中文字顯示問題。
2. 因為利用VS2010開啟VS2005 Project並且升級之後,Resources取得方式調整為:
MemoryStream memoryStream = new MemoryStream(Properties.Resources.ResourceManager.GetObject(fileName) as byte[]);

文字編碼Example Code:

// 1. 使用QRCode Library
ThoughtWorks.QRCode.Codec.QRCodeEncoder qRCodeEncoder = new ThoughtWorks.QRCode.Codec.QRCodeEncoder();
// 2. 以byte編碼方式 (共有:Numeric,Alphanumeric,Byte,Kanji四種)
qRCodeEncoder.QRCodeEncodeMode = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.BYTE;
// 3. 容錯率以(L=7%,M=15%,Q=25%,H=30%)
qRCodeEncoder.QRCodeErrorCorrect = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.M;
// 4. 大小
qRCodeEncoder.QRCodeScale = 10;
// 5. 版本(1-40,版本越大文字上限越高,version 40可以存1852 chars)
qRCodeEncoder.QRCodeVersion = 6;
// 6. UTF8編碼成bitmap
Bitmap bitmap=qRCodeEncoder.Encode(this.txb_data.Text,Encoding.UTF8);
// 7. 於image元件顯示
image_qrcode.Image = bitmap;
image_qrcode.SizeMode = PictureBoxSizeMode.Zoom;

圖片解碼Example Code:

// 1. 使用解碼元件
ThoughtWorks.QRCode.Codec.QRCodeDecoder qRCodeDecoder = new ThoughtWorks.QRCode.Codec.QRCodeDecoder();
// 2. 讀取圖片&設定編碼方式以取得解碼字串
string dataString=qRCodeDecoder.decode(new ThoughtWorks.QRCode.Codec.Data.QRCodeBitmapImage(new Bitmap(this.image_qrcode.Image)),Encoding.UTF8);

3 則留言:

JosephPeng 提到...

謝謝您的分享!!

JosephPeng 提到...

瞇瞇大大,
我測試發現,如果第一個字是英文或數字,接下來打中文,在解碼時會解不出來,(用手機可以正常讀)
還有大於50個中文字會出現錯誤...
不知道您寫的會不會這樣,
謝謝

JosephPeng 提到...

版本可以增加字元數,
decode加上,Encoding.UTF8解掉了,
抱歉打擾了...謝謝!!

橫式廣告