个性二维码开源专题<介绍篇>
由C#编写的个性二维码底层,已应用到 码晒客/疯狂创意二维码等项目上,并获得多项软件著作专利。
疯狂创意二维码
疯狂创意二维码是可用于生成风格独特的个性化二维码生成器,用户可以将目标信息输入到二维码生成器中,生成相应的个性二维码,然后输出为相应图片格式并保存。输入信息可以是:数字、网址、文字、微信、微博以及名片信息等,用户可以将想要生成二维码的信息批量导入,进行自动化批量生成导出处理。
码晒客
码晒客,由元创信息科技倾力打造,中国首款二维码个性制作神器,史上最能晒的二维码制作软件。该软件具备自动更新功能,一直服务做到用户满意。
要求:
C#,.net 4.0以上
引入 lib\Yc.QrCodeLib.dll
手脚架:
//创建个性二维码类库 Yc.QrcodeLib.XXX
//创建QrEncode 类 QrEncode.cs
//继承 CustomEncode public 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; }
以下是开源地址,国外github,国内oschina.net
oschina.net:
http://git.oschina.net/cheng5x/Yc.QrCode
github:
https://github.com/cheng5x/YcQrCode
码晒客讨论QQ群:
28629273
----------------------------
用心做产品 name:5+x
----------------------------
用心做产品 name:5+x
----------------------------