文档章节

个性二维码开源专题<基础篇>

cheng5x
 cheng5x
发布于 2014/06/07 14:55
字数 915
阅读 808
收藏 47
点赞 0
评论 2

二维码原理介绍:

二维码为什么是黑白相间的?黑色表示二进制的“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 = 0,
        NUMERIC = 1,
        BYTE = 2,
}/// <summary>/// 二维码容错率/// </summary>public QRCodeEncoder.ERROR_CORRECTION QRCodeErrorCorrect { get; set; }public enum ERROR_CORRECTION
{
        L = 0,
        M = 1,
        Q = 2,
        H = 3,
 }  /// <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 = 4;

 

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

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

 

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

oschina.net:

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

 

github:

https://github.com/cheng5x/YcQrCode

 

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

码晒客讨论QQ群:
28629273

 

© 著作权归作者所有

共有 人打赏支持
cheng5x
粉丝 9
博文 11
码字总数 6729
作品 2
佛山
项目经理
加载中

评论(2)

cheng5x
cheng5x

引用来自“kimmking”的评论

只开源了example
已经好详细的开源代码,而且带有 愤怒的小鸟 逻辑代码。
kimmking
kimmking
只开源了example
个性二维码开源专题 目录

目录 个性二维码开源专题<前序> 个性二维码开源专题<介绍篇> 个性二维码开源专题<基础篇> 个性二维码开源专题<替换元素点> 个性二维码开源专题<替换定位点> 个性二维码开源专题<液化/圆角/效...

cheng5x ⋅ 2014/06/07 ⋅ 0

个性二维码开源专题

基础方法: ChangeFillShape //修改填充形状ChangeFillShape(...) View Code //液化方法InkPaint(...) View Code //圆角样式 for (int i = 0; i < matrix.Length; i++) { for (int j = 0; j ......

cheng5x ⋅ 2014/07/05 ⋅ 0

个性二维码开源专题

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

cheng5x ⋅ 2014/06/06 ⋅ 0

个性二维码开源专题

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

cheng5x ⋅ 2014/06/09 ⋅ 4

基于zxing-lib三步实现Android二维码应用

只需要基于开源项目zxing-lib,便可轻松创建独立二维码App,也可将二维码功能集成进App内。本文也是zxing-lib的使用文档。同时抛砖引玉,欢迎大家一起共建zxing-lib。 项目地址:https://git...

yuminw ⋅ 2014/08/23 ⋅ 8

高级软件测试自学视频(性能、自动化、安全、手机app、管理)

恭喜“小强系列测试课程获得国家版权认证保护”,我们从不BB,只动手干! 《小强软件测试疯狂讲义》书籍出版,各大网店均可购买 “三级火箭”学习方式 1、参加培训班,由老师亲自上课进行讲解...

xqtesting ⋅ 2015/06/30 ⋅ 0

个性二维码开源专题

基础方法: ChangeFillShape //修改填充形状ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // Forebrush: // 填充色 // // rect: // 区域 // // enfill...

cheng5x ⋅ 2014/06/19 ⋅ 3

个性二维码开源专题

//设置图片资源 private Image imgAgo; public override void SetParam() { base.SetParam(); // 读取前背景 string imagePath = Environment.CurrentDirectory + @"QrCodeModelImagesAngry......

cheng5x ⋅ 2014/10/21 ⋅ 4

二维码扫码库--zxing-lib

zxing-lib是一款开源的二维码扫码库,基于ZXing进行精心剪裁和二次开发,支持更多的个性扩展功能,以Android library project形式输出,能被快速使用和集成。...

yuminw ⋅ 2014/08/23 ⋅ 0

个性二维码--YcQrCode

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

cheng5x ⋅ 2014/06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部