關於 QRCode 的問題[C# 生成二維碼固定大小]


  一直在糾結了一天多的問題:就是為什么生成的二維碼會隨着內容多少的變化而變化大小,但是為什么網上做出來的二維碼內容變化但是大小卻沒有變化?剛開始的時候我就一直圍繞着是不是根據縮略圖來做的,但是這個方法行不通,因為弄成縮略圖的話,二維碼的清晰度就降低了,變得模糊!這讓我十分糾結,那這是為什么呢?

  最后通過網上下載了一個源碼,進過對比,不斷測試,原來犯了一個很低級的錯誤,就是QRCodeVersion 的版本設置問題,我之前一直是用的 QRCodeVersion=0,因為我看網上都是這么用的,說是可以保證加密內容不會數組越界。后面我發現,只要不設置為0,那么二維碼大小就不會根據內容的變化而變化了。 

1 QRCodeEncoder qrEncoder = new QRCodeEncoder();
2 qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
3 qrEncoder.QRCodeScale = 2;
4 //設置編碼版本
5 qrEncoder.QRCodeVersion = 6;
6 qrEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
7 
8 Image img = qrEncoder.Encode(cont);

 附:

  QrcodeVersion的范圍值是0-40,0的含義是表示壓縮的信息量將會根據實際傳入值確定,只有最高上限的控制,而且圖片的大小將會根據信息量自動縮放。1-40的范圍值,則有固定的信息量上限,而且圖片的大小會固定在一個大小上,不會根據信息量的多少而變化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM