二维码的生成需要用到二维码生成的类库,ThoughtWorks.QRCode.dll

步骤:

第一步:下载二维码生成类库,ThoughtWorks.QRCode.dll

第二步:新建winform项目,引用类库ThoughtWorks.QRCode.dll,并布置winform窗体的控件

第三步:编写生成和保存二维码的方法

第四步:演示窗体的效果和保存后的二维码

二:介绍例子的步骤

第一步:新建一个QRCodeTest项目,添加引用类库ThoughtWorks.QRCode.dll,

项目结构如果所示:

第二步:布置窗体用到的控件,两个数值控件、一个文件框控件、两个按钮控件,

和一个图片框控件,并给它们命名,如图:

第三步:代码的展示

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ThoughtWorks.QRCode.Codec;

namespace QRCodeTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

/// <summary>
        /// 生成二维码事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCreateQRCode_Click(object sender, EventArgs e)
        {
            //获取生成二维码的参数(规模、版本、链接地址)
            int size = Convert.ToInt32(this.num_Size.Text);
            int version = Convert.ToInt32(this.num_version.Text);
            string linkaddress = this.txb_LinkAddress.Text.ToString();
            //调用生成二维码图片的事件,并把图片显示在图片框中
            Image img =  QrCodeBitmap(linkaddress, size, version);
            this.pic_MyImg.Image = img;
        }

/// <summary>
        /// 保存二维码事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSaveQRCode_Click(object sender, EventArgs e)
        {
            if (this.pic_MyImg.Image == null)
            {
                MessageBox.Show("没有可用的二维码图片!");
            }
            else
            {
                SaveFileDialog saveqrimg = new SaveFileDialog();
                saveqrimg.Title = "二维码图片保存";
                saveqrimg.Filter = @"jpeg|*.jpg|bmp|*.bmp|gif|*.gif";
                if (saveqrimg.ShowDialog() == DialogResult.OK)
                {
                    this.pic_MyImg.Image.Save(saveqrimg.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
            }
        }

/// <summary>
        /// 生成二维码位图
        /// </summary>
        /// <param name="link">用于生成二维码的链接</param>4
        /// <param name="size">二维码规模大小</param>
        /// <param name="version">二维码版本</param>
        /// <returns>二维码图片对象</returns>
        private Image QrCodeBitmap(string link, int size, int version)
        {
            QRCodeEncoder qrcodeencoder = new QRCodeEncoder();//生成设置编码实例
            qrcodeencoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//字节编码
            qrcodeencoder.QRCodeScale = size;//二维码规模大小
            qrcodeencoder.QRCodeVersion = version;//二维码版本
            qrcodeencoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//设置错误校验(错误更正)的级别:中等M
            Image img = qrcodeencoder.Encode(link);//生成二维码image图片
            return img;
        }
    }
}
第四步:效果展示

1)生成二维码

ps: 默认二维码规模、版本和链接地址为4,7,百度地址

2)保存二维码

Winform窗体实现简单的二维码生成和保存的更多相关文章

  1. Winform中使用zxing实现二维码生成(附dll下载)

    场景 zxing.dll下载 https://download.csdn.net/download/badao_liumang_qizhi/11623214 效果 实现 新建Winform程序,将上面 ...

  2. C# 二维码生成 ( QRCoder )

    二维码1.前言seaconch 最近在搞二维码方面的一些东西,所以接触了一些二维码相关,那么既然用过了就要有用过了的样子 其实关于二维码的文章真的多的数不胜数,有很多写的很认真,很好,但这就像是学习一 ...

  3. [开源]C#二维码生成解析工具,可添加自定义Logo

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

  4. .NET 二维码生成(ThoughtWorks.QRCode)

    引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string n ...

  5. Android 二维码 生成和识别(附Demo源码)

    今天讲一下目前移动领域很常用的技术——二维码.现在大街小巷.各大网站都有二维码的踪迹,不管是IOS. Android.WP都有相关支持的软件.之前我就想了解二维码是如何工作,最近因为工作需要使用相关技 ...

  6. Android 二维码 生成和识别(转)

    原博客地址 :http://www.cnblogs.com/weixing/archive/2013/08/28/3287120.html 还有几个写的也可以参考一下:http://www.itnos ...

  7. IOS 二维码生成

    这篇博客将会介绍二维码的生成. 由于没有什么东西值得长篇大论的,所以这里我就通过代码的实现介绍二维码. 第一部分 第一部分是二维码的简单生成没有其他重点介绍. 效果图 代码部分 // // ViewC ...

  8. android 二维码生成+扫描

    android 二维码生成+扫描 1.在Android应用当中,很多时候都要用到二维码扫描,来避免让用户手动输入的麻烦. Google官方自己推出了一个二维码开源项目:ZXing库. 2.这里简单介绍 ...

  9. 玩转Android之二维码生成与识别

    二维码,我们也称作QRCode,QR表示quick response即快速响应,在很多App中我们都能见到二维码的身影,最常见的莫过于微信了.那么今天我们就来看看怎么样在我们自己的App中集成二维码的 ...

随机推荐

  1. how to use javap command

    SYNOPSIS javap [options] classes DESCRIPTION The javap command is called "disassembler" be ...

  2. .net微信公众号开发——快速入门

    作者:王先荣 最近在学习微信公众号开发,将学习的成果做成了一个类库,方便重复使用. 现在微信公众号多如牛毛,开发微信的高手可以直接无视这个系列的文章了. 使用该类库的流程及寥寥数行代码得到的结果如下. ...

  3. C#后台弹出对话框

    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='jav ...

  4. Swift 正式开源, 包括 Swift 核心库和包管理器

    Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章.自从苹果发布 Swfit 编程语言,就成为了历史上发展最快的编程语言之一.Swift 通过设计使得软件编写更加快速更加安全 ...

  5. android 模拟器

    参考:http://www.syscs.com/node/504 --skin WVGA800 - -no-boot-anim -wipe-: the dpi for the device you a ...

  6. 哈夫曼算法(haffman)实现压缩和解压缩-C语言实现

    /* * ===================================================================================== * * Filen ...

  7. Android对话框之dismiss和cancel和hide区别

    在我们看来两者效果都是一样的,其实看下源码就知道cancel肯定会去调dismiss的,如果调用的cancel的话就可以监听DialogInterface.OnCancelListener. /** ...

  8. 用SQL server导出到oracle,查询时提示“表或视图不存在ORA-00942”错误

    用SQL server2005的导出工具,将数据导出表到oracle,表名称里看到有这张表了,但查询或删除时都提示“ORA-00942表或者试图不存在”的错误,上网查了一下,是如下原因: “查询或删除 ...

  9. tcp/ip协议listen函数中backlog参数的含义与php-fpm的502 Bad Gateway

    To understand the backlog argument, we must realize that for a given listening socket, the kernel ma ...

  10. HTML5[5]:在移动端禁用长按选中文本功能

    在手机浏览器中,长按可选中文本,但如果在应用中,会给人一种异样的感觉,最好还是禁用此功能为上. * { -webkit-touch-callout:none; -webkit-user-select: ...