C# 二维码生成 ( QRCoder )
二维码1.前言seaconch最近在搞二维码方面的一些东西,所以接触了一些二维码相关,那么既然用过了就要有用过了的样子
其实关于二维码的文章真的多的数不胜数,有很多写的很认真,很好,但这就像是学习一样,别人会不代表自己就没有学习和记录的价值,所以说学习不在早晚
引入包1.通过NuGet引入QRCodera)首先,我们新建一个类库项目,seaconch这里命名为chestnut_qrcode
b)之后通过NuGet引入QRCoder包
c)见图操作
d)安装成功后,项目引用中就会出现QRCoder的引用
e)这时候引入工作已经完成,不过可以顺手创建一个Encoder.cs静态公共类
二维码生成类1.前期准备这里先说一下生成二维码需要的三个类:
QRCodeGeneratorQRCodeDataQRCode他们的职责分别是什么呢?
QRCodeGenerator:用来通过指定的方式生成二维码存储的数据对象,也就是QRCodeData二维码中间的Matrix,之后QRCode得到QRCodeData并生成二维码
2.编码Encoder.cs全部代码如下:
usingSystem.Drawing;namespacechestnut_qrcode{//////二维码编码器///publicstaticclassEncoder{//////生成二维码//////信息///版本1~40///像素点大小///图标路径///图标尺寸///图标边框厚度///二维码白边///位图publicstaticBitmapcode(stringmsg,intversion,intpixel,stringicon_path,inticon_size,inticon_border,boolwhite_edge){QRCoder.QRCodeGeneratorcode_generator=newQRCoder.QRCodeGenerator();QRCoder.QRCodeDatacode_data=code_generator.CreateQrCode(msg,QRCoder.QRCodeGenerator.ECCLevel.M/*这里设置容错率的一个级别*/,true,true,QRCoder.QRCodeGenerator.EciMode.Utf8,version);QRCoder.QRCodecode=newQRCoder.QRCode(code_data);Bitmapicon=newBitmap(icon_path);Bitmapbmp=code.GetGraphic(pixel,Color.Black,Color.White,icon,icon_size,icon_border,white_edge);returnbmp;}}}容错率与version之间的参数都与编码格式有关系,有些格式是不支持中文的哦
准备Form1.外观这里seaconch使用的是winform项目,直接截个图吧
2.代码usingSystem;usingSystem.Drawing;usingSystem.Windows.Forms;namespacechestnut_form{publicpartialclassfrm_qrcode:Form{publicfrm_qrcode(){InitializeComponent();}//窗体加载privatevoidfrm_qrcode_Load(objectsender,EventArgse){cb_version.SelectedIndex=1;cb_pixel.SelectedIndex=0;cb_icon_size.SelectedIndex=0;cb_icon_border.SelectedIndex=1;}//编码privatevoidbtn_encode_Click(objectsender,EventArgse){intversion=Convert.ToInt16(cb_version.Text);intpixel=Convert.ToInt16(cb_pixel.Text);stringstr_msg=tb_msg.Text;intint_icon_size=Convert.ToInt16(cb_icon_size.Text);intint_icon_border=Convert.ToInt16(cb_icon_border.Text);boolb_we=rb_we_y.Checked?true:false;Bitmapbmp=chestnut_qrcode.Encoder.code(str_msg,version,pixel,"E:/seaconch/git/1.jpg",int_icon_size,int_icon_border,b_we);pb_qrcode.Image=bmp;}//保存privatevoidbtn_save_Click(objectsender,EventArgse){if(pb_qrcode.Image!=null)using(SaveFileDialogsfd=newSaveFileDialog()){sfd.Filter="(*.png)|*.png|(*.bmp)|*.bmp";if(sfd.ShowDialog()==DialogResult.OK)pb_qrcode.Image.Save(sfd.FileName);}}}}效果那么seaconch在这里向大家送上祝福
js生成二维码的几种方法
js生成二维码的几种方法努力️码农:qrcode.min.js是什么文件呀
vue2和vue3中mixins的使用前端小Z:Vue3就别提mixin了,官方都不支持了,你又强行来个概念
uni-app在main.js中导入全局文件报错处理sxs7970:js文件,第一次查不到引入的模块,这是为啥
vue2和vue3中mixins的使用夏日里的一把阳光:你这还叫全局混入吗这跟写个导出有区别吗
vue2和vue3中mixins的使用白菜酱:所以这里的引入使用:const{count,plusOne,hello}=mixin.setup(),就可以了