博舍

C# 二维码生成 ( QRCoder ) 二维码生成器怎样使用

C# 二维码生成 ( QRCoder )

二维码1.前言

seaconch最近在搞二维码方面的一些东西,所以接触了一些二维码相关,那么既然用过了就要有用过了的样子

其实关于二维码的文章真的多的数不胜数,有很多写的很认真,很好,但这就像是学习一样,别人会不代表自己就没有学习和记录的价值,所以说学习不在早晚

引入包1.通过NuGet引入QRCoder

a)首先,我们新建一个类库项目,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(),就可以了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇