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 則留言:
謝謝您的分享!!
瞇瞇大大,
我測試發現,如果第一個字是英文或數字,接下來打中文,在解碼時會解不出來,(用手機可以正常讀)
還有大於50個中文字會出現錯誤...
不知道您寫的會不會這樣,
謝謝
版本可以增加字元數,
decode加上,Encoding.UTF8解掉了,
抱歉打擾了...謝謝!!
張貼留言