小白C#窗体系列-02.二维码生成器

今天是情人节,咳,男人们带着他们的男朋友们,女人带着她们的女朋友们愉快的逛着街。逆天也就不随大众了,就继续出C#小白系列的教程了~~~

实在没空去录教程了,就看看文档吧,大家都知道的,录教程是比较花时间的,我不想草草了事,那是对大家和我自己的不负责,视频可以以后再录,不过软件和源码以及文档得先弄好,毕竟逆天不喜欢失信与自己~~

废话不说了,开始我们的教程吧~

软件下载(.NET 4.0 框架)http://pan.baidu.com/s/1i3BUVNv【源码看下面】

一、设计图纸:

二、代码分析:

(很多人跟我说我代码就一个颜色,看起来很蛋疼。。。好吧以后都用空间自带的高级功能来显示代码)

今天呢,我们就讲一下网上最常用的一种编程方式,调用别人封装好的dll文件,然后简单赋几个属性再调用几个方法就可以来实现你要的功能了(这个和易语言的易模块相似)
         总共有三个大方向:

1、调用dll文件生成二维码图片(核心)

记得引入命名空间:

using ThoughtWorks.QRCode.Codec;  //QRCodeEncoder 的 命名 空间

using System.Drawing;             //Bitmap 的 命名 空间

using System.Windows.Forms;      // Form 的 命名 空间

Bitmap image=null;  //来存放图片的

QRCodeEncoder qr = new QRCodeEncoder(); //实例化对象

qr.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //以字节存储()

qr.QRCodeScale = 5;  //这个设置二维码的大小 5-250*250 4-200*200 3-150*150 2-100*100 1-50*50

qr.QRCodeVersion = 8;  //版本号,8是最新版本

try

{

qr.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //它自带纠错功能,几个选项都差不多

image = qr.Encode(s, Encoding.UTF8); //以UTF-8的方式存储字符串(国际编码)

}

catch //这个异常处理是放在输入内容太多造成数组溢出等异常

{

MessageBox.Show("亲啊,你话太多了吧~~~我肚子装不下啊~~");

}

其实当你不知道这个方法是什么的时候,把鼠标移到上面,按F12就可以看解析了

写这个dll的大牛比较懒,我反编译的很蛋疼。。。才大概看懂他是啥意思。。。然后才有了后面的方法和属性的调用

2、另类方式调子窗体(一般都是show(),我这边不是)
 调子窗体一般主窗体都不可避免的存在着,感觉很显眼,那有没有什么特殊的方式来调用呢?
逆天大一的时候研究的要死也没弄出来,各种找资料,各种搜索。。。后来在录C#伪病毒的时候才突然在我的资料库中找到这么个神奇的方法:

主窗体点击按钮时:div.ShowDialog(this); //把窗体变成对话框模式 div是子窗体的实例化对象(Div div=new Div();)
 子窗体加载的时候: this.Owner.Hide();    //把设置打开本窗体的窗体隐藏掉
 子窗体关闭事件中:Application.Exit();     //记得退出哦~(如果你想继续显示主窗体就写this.Owner.Show();)

3、把PictureBox里面的图片保存出来
 教你个最简单的方法:
    先在工具箱中找个 saveFileDialog控件放窗体中,然后看下面:

saveFileDialog1.Filter = "jpg图像(*.jpg)|*.jpg|png图像(*.png)|*.png|bmp图像(*.bmp)|*.bmp|所有格式(*.*)|*.*";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

string folderP = saveFileDialog1.FileName; //把你保存对话框中输入的图片名赋值给字符串folderP

Image img = qrImage.Image; //开始把image弄出来了~

img.Save(folderP);  //保存了,顺便把名字也帮你改好~

}

三、源码分享:http://pan.baidu.com/s/1jGl46kI

四、视频共享: 等~~~

本期推荐:万恶的.NET Reflector 7.0    8.0                                                               下一期:打造自己的图片查看器

小白C#窗体系列-02.二维码生成器,布布扣,bubuko.com

时间: 2024-12-16 02:27:59

小白C#窗体系列-02.二维码生成器的相关文章

小白C#窗体系列-01.简易浏览器

最近重伤,今天正好放假,就抽个空出C#第一集,开发完毕... 如果你看不到这篇文章,那过一天就可以看见了. 软件下载(.NET 4.0 框架)http://pan.baidu.com/s/1c03X7vM[源码看下面] 一.设计图纸: 二.代码分析 1.后退键. 前进键.停止键.刷新键:这几个功能本来我是准备用个数组来存储,可以前进后退的,后来啃他自带方法的时候发现微软提供了方法,也就偷个懒了后退按钮 this.webBrowser1.GoBack(); 前进按钮 this.webBrowser

二维码生成器和解析器-java

1.工具zxing2.1----下载地址:http://code.google.com/p/zxing/downloads/detail?name=ZXing-2.1.zip&can=2&q= 所有版本下载地址:http://code.google.com/p/zxing/downloads/list 2.需要的jar包,zxing的core.jar和zxing的javase.jar这两个jar包在zxing2.1版本中地址是 zxing/zxingorg/web/WEB-INF/lib里

C#版的二维码生成器

这里是二维码的介绍http://blog.sina.com.cn/s/blog_4d8333670100t8mr.html 下面是我用C#作为后台代码做的一个二维码生成器的代码: 前端: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="main.aspx.cs" Inherits="二维码生成器.main" %> <!DOCTYPE html

小程序参数二维码生成器

微信小程序支持带参数二维码,好推二维码的HotApp小程序统计针对这个功能推出了小程序带参数二维码生成器 输入微信的page 和参数,就可以生成小程序带参数二维码了. www.hotapp.cn

PHP二维码生成器

PHP二维码生成器 (1)       在官网上下载PHPQR Code类库,下载源文件并解压到phpqrcode目录下. (2)创建脚本文件create_png.php在页面上添加用户表单,代码如下: <form method="post"> 输入文本:<inputtype="text" name="info"><br> 请选择大小:<selectname='size'> <? for($i

二维码生成器(来源黑白猪的博客)

<!doctype html><html><head> <meta charset="utf-8"> <title>二维码生成</title> <meta name="viewport" content="initial-scale=1, width=device-width, maximum-scale=1, user-scalable=no" /> <m

python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询.cmd版的实时翻译.快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给大家分享一个二维码生成器的爬虫版本实现! 爬虫思路 网上有很多的二维码自动生成的网页,它可以将文本.名片.wifi分享等等都以二维码的形式生成,只需要用带有识别二维码的app就可以识别,比如手机浏览器一般就自带app哦! PS:这里,普及一个很重要点,不要用带有支付功能的app随便扫码(支付宝.微信等等)!!!

带动态背景图的二维码生成器

BitQR-Code Through image generate QR-Code . 一个优雅的 QR 二维码生成器 Github项目地址 : https://github.com/CasterWx/BitQR-Code 样例 拿起你的手机扫描下面的二维码试试吧! 原图 Version-3 Version-5 直接拼凑GIF 分解生成 原图1 原图2 原图3 GIF1 GIF2 GIF3 GIF分解为多个帧 原GIF 第四帧 第七帧 第十帧 第十三帧 第十六帧 第二十帧 生成GIF 2018年

C++逆天语法系列之二维数组

某公司的笔试题,自己分析得出的答案,并在后面对二维数组元素表示形式做出总结.新手朋友别嫌啰嗦,耐心看完并记住对你会有帮助的.老鸟们也欢迎来提意见. int a[4][4] = { {1,2,3,4}, {50,60,70,80}, {900,1000,1100,1200}, {13000,14000,15000,16000} }; int (*p1)[4] = a; int (*p2)[4] = &a[0]; int *p3 = &a[0][0]; printf("%d, %d,