二维码原理介绍:

二维码为什么是黑白相间的?黑色表示二进制的“1”,白色表示二进制的“0”

“我们之所以对二维码进行扫描能读出那么多信息,就是因为这些信息被编入了二维码之中。”黄海平说,“制作二维码输入的信息可以分成三类,文本信息,比如名片信息;字符信息,比如网址、电话号码;还有图片信息,甚至还可以包括简短的视频。”数据信息是怎么被编入的呢?信息输入后,首先要选择一种信息编码的码制。现在常见的二维码都是以QR码作为编码的码制。QR码是矩阵式二维码,它是在一个矩形空间内,通过黑、白像素在矩阵中的不同分布,来进行编码的。我们知道电脑使用二进制(0和1)数来贮存和处理数据,而在二维码中,用黑白矩形表示二进制数据我们肉眼能看到的黑色表示的是二进制“1”,白色表示二进制的“0”,黑白的排列组合确定了矩阵式二维条码的内容,以便于计算机对二维码符号进行编码和分析。

百度经验:http://jingyan.baidu.com/article/86f4a73e520e3b37d6526981.html

开始使用:

命名规则最好遵守,因为套入模版使用的是反射技术,对前缀命名有要求。

1.创建类库

命名Yc.QrcodeLib.xxx 

2.创建类

命名QrEncode

手脚架:

基础参数:

/// <summary>
/// 二维码默认参数
/// </summary>
QRCodeEncoder
/// <summary>
/// 二维码大小
/// </summary>
public int QRCodeScale { get; set; } /// <summary>
/// 二维码版本(默认0时,自动适应版本)
/// </summary>
public int QRCodeVersion { get; set; } /// <summary>
/// 二维码编码
/// </summary>
public QRCodeEncoder.ENCODE_MODE QRCodeEncodeMode { get; set; } public enum ENCODE_MODE
{
ALPHA_NUMERIC = ,
NUMERIC = ,
BYTE = ,
} /// <summary>
/// 二维码容错率
/// </summary>
public QRCodeEncoder.ERROR_CORRECTION QRCodeErrorCorrect { get; set; } public enum ERROR_CORRECTION
{
L = ,
M = ,
Q = ,
H = ,
}
/// <summary>
/// 二维码容边距
/// </summary>
public int FrameSpacing { get; set; }
/// <summary>
/// 二维码容高边距
/// </summary>
public int FrameSpacingH { get; set; }
/// <summary>
/// 二维码容宽边距
/// </summary>
public int FrameSpacingW { get; set; }

基础方法:

/// <summary>
/// 修改填充形状
/// </summary>
ChangeFillShape(...)

填充色示例:

QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder();
_qrCodeEncoder.QRCodeForegroundColor = Color.Red;

背景色示例:

QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder();
_qrCodeEncoder.QRCodeBackgroundColor = Color.Red;

边距示例:

QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder();
_qrCodeEncoder.FrameSpacing = ;

其他就不一一示例了,都大同小异的。

希望这篇文章对大家,研究二维码有更深的认识。

以下是开源地址,国外github,国内oschina.net

oschina.net:

http://git.oschina.net/cheng5x/Yc.QrCode

github:

https://github.com/cheng5x/YcQrCode

官方网站:
http://original-ad.com

码晒客讨论QQ群:
28629273

个性二维码开源专题<基础篇>的更多相关文章

  1. 个性二维码开源专题<后背景>

    //设置图片资源 private Image img1; public override void SetParam() { base.SetParam(); //读取图片 string _image ...

  2. 个性二维码开源专题<前背景>

    //设置图片资源 private Image imgAgo; public override void SetParam() { base.SetParam(); // 读取前背景 string _i ...

  3. 个性二维码开源专题<液化/圆角/效果>

    基础方法: ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // F ...

  4. 个性二维码开源专题<替换元素点>

    基础方法:ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // Fo ...

  5. 个性二维码开源专题<替换定位点>

    基础方法: ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // F ...

  6. 个性二维码开源专题<介绍篇>

    由C#编写的个性二维码底层,已应用到 码晒客/疯狂创意二维码等项目上,并获得多项软件著作专利. 疯狂创意二维码 疯狂创意二维码是可用于生成风格独特的个性化二维码生成器,用户可以将目标信息输入到二维码生 ...

  7. Android二维码开源项目zxing用例简化和生成二维码、条形码

    上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的測试程序:CaptureActivity比較复杂,我仅仅要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自 ...

  8. 你只要5行代码,拥有你的个性二维码,用Python生成动态二维码

    如果想了解更多关于python的应用,可以私信我,或者点击下方链接自行获取,里面到资料都是免费的(http://t.cn/A6Zvjdun) 二维码满天飞,但是有没有想过Python也能制作出专属于自 ...

  9. 二维码开源库ZBar-吐槽篇

    前不久在网上看到一篇文章<QR-Decoder-OV5640 二维码识别> ,是某开发板的教程.记得对应的开发板以前购买过,当初只是为了看OV5640的JPG的输出效果,结果由于公司奇葩的 ...

随机推荐

  1. PHP面向对象的标准

    (1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深 ...

  2. 关于read only file system问题解决方案

    切换到超级用户sudo -sadb kill-serveradb rebootadb remount

  3. 测试Python代码

    作为程序员,懂得测试,这是必须的职业技能.很遗憾,我以前从未意识到这点,因此经历了很多叫苦不迭的开发生涯.当然了,期望每个人都成为测试高手也是不可能的,但是最基本的单元测试啥的是不惜的,尤其是现在中小 ...

  4. 关于web测试

    关于web测试1页面部分(1) 页面清单是否完整(是否已经将所需要的页面全部都列出来了)(2) 页面是否显示(在不同分辨率下页面是否存在,在不同浏览器版本中页面是是否显示)(3) 页面在窗口中的显示是 ...

  5. shell讲解-小案例

    shell讲解-小案例 一.文件拷贝输出检查 下面测试文件拷贝是否正常,如果cp命令并没有拷贝文件myfile到myfile.bak,则打印错误信息.注意错误信息中basename $0打印脚本名.如 ...

  6. json转换为javabean

    public static void jSONObjectToJavaBean() throws ClassCastException{ JSONObject jsonObject = new JSO ...

  7. POJ 3180-The Cow Prom (图论-有向图强联通tarjan算法)

    题目大意:有n个牛在一块, m条单项绳子, 有m个链接关系, 问有多少个团体内部任意两头牛可以相互可达 解题思路:有向图强连通分量模版图 代码如下: #include<stdio.h> # ...

  8. centos安装Python2.7

    1. 查看本机系统及python版本 # cat /etc/redhat-release CentOS release 6.7 (Final) 查看CentOS release 6.7 (Final) ...

  9. ContentProvider 增删改查通讯录

    一.通讯录应用介绍 通讯录应用是Android自带的应用程序,我们看到此应用的时候,可能只认为这是一个应用,用数据库存储数据,但是实际上不是这样的. 通讯录是ContentProvider的应用,通讯 ...

  10. NX图标

    可以从%UGII_BASE_DIR%\ugii\menus目录下men文件或TBR文件中查找 关键字BITMAP 对应的名称