生活随笔
收集整理的這篇文章主要介紹了
C# 利用QRCode生成二维码图片
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網上生成二維碼的組件是真多,可是真正好用的,并且生成速度很快的沒幾個,QRCode就是我在眾多中找到的,它的生成速度快。但是網上關于它的使用說明,真的太少了,大都是千篇一律的復制粘貼。這是本要用它做了一個項目后,簡單的整理了一下。
組件下載地址:http://download.csdn.net/detail/lybwwp/6861821
下載文件包包含ThoughtWorks.QRCode.dll與dll的源碼,強人可修改些源碼。
字符串較長的情況下,用ThoughtWorks.QRCode生成二維碼時出現“索引超出了數組界限”的錯誤。
解決方法:將 QRCodeVersion 改為0。
此代碼功能:批量生成二維碼圖片保存到指定文件夾中(此圖片可保存,可指定圖片格式和圖片大小)。
引用空間?ThoughtWorks.QRCode.dll
using ThoughtWorks.QRCode.Codec;
[csharp]?view plaincopy print?
#region?二維碼生成??????????????????????????????????private?void?Create_CodeImages()??????????{??????????????try??????????????{??????????????????if?(myDataSet?!=?null)??????????????????{??????????????????????if?(myDataSet.Tables[0].Rows.Count?>?0)??????????????????????{??????????????????????????????????????????????????DeleteDir(currentPath);??????????????????????????foreach?(DataRow?dr?in?myDataSet.Tables[0].Rows)??????????????????????????{??????????????????????????????if?(dr[2]?!=?null)??????????????????????????????{??????????????????????????????????????????????????????????????????Bitmap?image?=?Create_ImgCode(dr[2].ToString(),?imgSize);??????????????????????????????????????????????????????????????????SaveImg(currentPath,?image);??????????????????????????????}??????????????????????????}??????????????????????????????????????????????????Open_File(currentPath);??????????????????????????myDataSet?=?null;??????????????????????????return;??????????????????????}??????????????????}??????????????}??????????????catch(Exception?ex)?{??????????????????MessageBox.Show(ex.ToString?(),?"錯誤!",?MessageBoxButtons.OK,?MessageBoxIcon.Error);????????????????????????????}??????????}??????????????????????readonly?string?currentPath?=?Application.StartupPath?+?@"\BarCode_Images";????????????????????????????????????????????????????public?void?SaveImg(string?strPath,?Bitmap?img)??????????{??????????????????????????if?(Directory.Exists(strPath))??????????????{??????????????????????????????????string?guid?=?Guid.NewGuid().ToString().Replace("-",?"")?+?".png";??????????????????img.Save(strPath?+?"/"?+?guid,?System.Drawing.Imaging.ImageFormat.Png);??????????????}??????????????else??????????????{??????????????????????????????????Directory.CreateDirectory(strPath);??????????????}??????????}??????????????????????????????????????????????????????????public?Bitmap?Create_ImgCode(string?codeNumber,?int?size)??????????{??????????????????????????QRCodeEncoder?qrCodeEncoder?=?new?QRCodeEncoder();??????????????????????????qrCodeEncoder.QRCodeEncodeMode?=?QRCodeEncoder.ENCODE_MODE.BYTE;??????????????????????????qrCodeEncoder.QRCodeScale?=?size;??????????????????????????qrCodeEncoder.QRCodeVersion?=?0;??????????????????????????qrCodeEncoder.QRCodeErrorCorrect?=?QRCodeEncoder.ERROR_CORRECTION.M;??????????????????????????System.Drawing.Bitmap?image?=?qrCodeEncoder.Encode(codeNumber);??????????????return?image;??????????}??????????????????????????????????????????public?void?Open_File(string?path)??????????{??????????????System.Diagnostics.Process.Start("explorer.exe",?path);??????????}??????????????????????????????????????????public?void?DeleteDir(string?aimPath)??????????{??????????????try??????????????{??????????????????????????????????if?(Directory.Exists(aimPath))??????????????????{??????????????????????????????????????????if?(aimPath[aimPath.Length?-?1]?!=?Path.DirectorySeparatorChar)??????????????????????????aimPath?+=?Path.DirectorySeparatorChar;??????????????????????????????????????????????????????????????string[]?fileList?=?Directory.GetFiles(aimPath);??????????????????????????????????????????????????????????????foreach?(string?file?in?fileList)??????????????????????{??????????????????????????????????????????????????if?(Directory.Exists(file))??????????????????????????{??????????????????????????????DeleteDir(aimPath?+?Path.GetFileName(file));??????????????????????????}??????????????????????????????????????????????????else??????????????????????????{??????????????????????????????File.Delete(aimPath?+?Path.GetFileName(file));??????????????????????????}??????????????????????}??????????????????}??????????????}??????????????catch?(Exception?e)??????????????{??????????????????throw?e;??????????????}??????????}??????????#endregion??
總結
以上是生活随笔為你收集整理的C# 利用QRCode生成二维码图片的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。