C# 二维码生成和解析

现如今二维码广泛应用,已经成为了生活中不可或缺的东西;所以我们日常的开发中,也肯定少不了对二维码的生成或者解析。

C# 二维码生成和解析_第1张图片

实现功能:

    • 将字符串生成二维码和解析二维码图片

开发环境:

开发工具:Visual Studio 2013

.NET Framework版本:4.5

实现代码:

//需添加zxing.dll和zxing.presentation.dll到自己项目


//需引入命名空间
using ZXing;
using ZXing.Common;
using ZXing.QrCode.Internal;


 //生成二维码
 private void btnGenerate_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrWhiteSpace(textBox1.Text))
     {
         MessageBox.Show("请输入要生成的文本信息");
         return;
     }
     BarcodeWriter barCodeWriter = new BarcodeWriter();
     barCodeWriter.Format = BarcodeFormat.QR_CODE;
     barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
     barCodeWriter.Options.Height = 230;
     barCodeWriter.Options.Width = 230;
     BitMatrix bm = barCodeWriter.Encode(textBox1.Text);
     Bitmap img = barCodeWriter.Write(bm);
     pictureBox1.Image = img;
 }


 //解析二维码
 private void btnAnalysis_Click(object sender, EventArgs e)
 {
     if (pictureBox1.Image == null)
     {
         MessageBox.Show("请先复制图片到图片框");
         return;
     }


     BarcodeReader reader = new BarcodeReader();
     reader.Options.CharacterSet = "UTF-8";
     Result result = reader.Decode((Bitmap)pictureBox1.Image);
     textBox1.Text = result.Text;
 }


 //获取剪切板中的图片
 private Image CopyImage()
 {
     try
     {
         Image image = null;
         IDataObject iData = Clipboard.GetDataObject();
         if (iData.GetDataPresent(DataFormats.FileDrop))
         {
             object obj = iData.GetData(DataFormats.FileDrop);
             image = Image.FromFile((obj as string[])[0].ToString());
         }
         else if (iData.GetDataPresent(DataFormats.Bitmap))
         {
             object obj = iData.GetData(DataFormats.Bitmap);
             image = obj as Image;
         }
         return image;
     }
     catch { return null; }


 }


 //给予pictureBox1焦点
 private void pictureBox1_Click(object sender, EventArgs e)
 {
     pictureBox1.Focus();
 }


 //ctrl+v复制到pictureBox1
 private void pictureBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
 {
     if (e.Control && e.KeyCode == Keys.V)
     {
         pictureBox1.Image = CopyImage();
     }
 }

实现效果:

C# 二维码生成和解析_第2张图片

若需要源码,请私信 二维码生成和解析 获取;

由简入繁,拿来即用

后续精彩,持续关注

欢迎关注公众号: dotnet编程大全

技术群: 需要进技术群的添加小编微信mm1552923,备注:加群;

你可能感兴趣的:(c#,python,java,android,css)