文档章节

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

cheng5x
 cheng5x
发布于 2014/06/06 15:12
字数 521
阅读 196
收藏 10

由C#编写的个性二维码底层,已应用到 码晒客/疯狂创意二维码等项目上,并获得多项软件著作专利。

 

疯狂创意二维码

疯狂创意二维码是可用于生成风格独特的个性化二维码生成器,用户可以将目标信息输入到二维码生成器中,生成相应的个性二维码,然后输出为相应图片格式并保存。输入信息可以是:数字、网址、文字、微信、微博以及名片信息等,用户可以将想要生成二维码的信息批量导入,进行自动化批量生成导出处理。

 

码晒客

码晒客,由元创信息科技倾力打造,中国首款二维码个性制作神器,史上最能晒的二维码制作软件。该软件具备自动更新功能,一直服务做到用户满意。

 

要求:

C#,.net 4.0以上

引入 lib\Yc.QrCodeLib.dll

 

手脚架:

//创建个性二维码类库Yc.QrcodeLib.XXX
//创建QrEncode 类QrEncode.cs
//继承 CustomEncodepublic class QrEncode : Yc.QrCodeLib.custom.CustomEncode
//生成验证 public QrEncode(string key)
     : base(key)
 {

 }
 public override void SetParam()
 {        base.SetParam();        //TODO:设置具体参数
  }
        //个性二维码生成最小单元
        public override Bitmap Encode(string content)
        {            try
            {
                matrix = QrCodeEncoder.calQrcode(EnCoding.GetBytes(content));
            }            catch { throw new Exception("内容超出范围,请选择更高版本或者降低容错率"); }            this.SetParam();            //SolidBrush Backbrush = new SolidBrush(QrCodeEncoder.QRCodeBackgroundColor);
            SolidBrush Backbrush = new SolidBrush(Color.Transparent);//背景透明
            SolidBrush Forebrush = new SolidBrush(QrCodeEncoder.QRCodeForegroundColor);

            Bitmap image = new Bitmap(this.QrCodeW, this.QrCodeH);
            Graphics g = Graphics.FromImage(image);

            Rectangle rect = new Rectangle();

            g.FillRectangle(Backbrush, new Rectangle(0, 0, image.Width, image.Height));            for (int i = 0; i < matrix.Length; i++)
            {                for (int j = 0; j < matrix.Length; j++)
                {
                    rect = new Rectangle((j + this.SpacingW) * QrCodeEncoder.QRCodeScale, (i + this.SpacingH) * QrCodeEncoder.QRCodeScale, QrCodeEncoder.QRCodeScale, QrCodeEncoder.QRCodeScale);                    if (matrix[j][i])
                    {
                        ChangeFillShape(g, Forebrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
                    }                    else
                        ChangeFillShape(g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
                }
            }            return image;
        }

复制代码

 

Yc.QrCodeLib.SuperMario Yc.QrCodeLib.Original Yc.QrCodeLib.Needle Yc.QrCodeLib.LightBulb Yc.QrCodeLib.HeartBalloon Yc.QrCodeLib.Colorful Yc.QrCodeLib.Angry_Birds Yc.QrCodeLib._3ai Yc.QrCode.Lib.Radio Yc.QrCode.Lib.LovingHeart

 以下是开源地址,国外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
佛山
项目经理
个性二维码开源专题

基础方法: 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
0
个性二维码开源专题

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

cheng5x
2014/06/09
0
4
个性二维码开源专题

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

cheng5x
2014/06/19
0
3
基于zxing-lib三步实现Android二维码应用

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

yuminw
2014/08/23
0
8
高级软件测试自学视频(性能、自动化、安全、手机app、管理)

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

xqtesting
2015/06/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
2
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部