在网上很多应用都是用二维码来分享网址或者其它的信息。尤其在移动领域,二维码更是有很大的应用场景。因为项目的需要,需要在网站中增加一个生成二维码分析网址的功能,在谷歌大幅度抽筋的情况下无奈使用百度。百度N多,找到一些项目,但是可用性不强。(有一个项目是用VS2005开发的,在2010中调试不开。)终于在codeplex上找到一个“神器”,这个“神器”可以很方便的生成二维码,速度那是相当的快,并且可支持中文,遵从MIT协议。

QrCode.Net是一个使用C#编写的用于生成二维码图片的类库,使用它可以非常方便的为WinForm、WebForm、WPF、Silverlight和Windows Phone 7应用程序提供二维码编码输出功能。可以将二维码文件导出为eps格式。

项目地址为:http://qrcodenet.codeplex.com

QrCode.Net不再采用http://code.google.com/p/zxing/ ZXing的端口,新的版本将有更好的性能。

测试结果如下(微秒):

输入字符串长度:74个

EC performance 1000 Tests~ QrCode.Net: 3929 ZXing: 5221

同时,QrCode.Net可以对字符串进行分析,决定是否使用UTF-8编码。(比如使用中文的时候。)

1.Graphics

        //const string str = "Hello World!";
const string str = "http://www.weilanwu.com";
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e); ShowCode(e.Graphics);
} //在Graphics上绘制二维码
private void ShowCode(Graphics g)
{
QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H); QrCode qrCode = qrEncoder.Encode(str);
FixedModuleSize moduleSize = new FixedModuleSize(, QuietZoneModules.Two);
GraphicsRenderer render = new GraphicsRenderer(moduleSize, Brushes.Black, Brushes.White);
render.Draw(g, qrCode.Matrix);
}

显示结果:

2.生成到图片

        /*
* FixedModuleSize---5-----165*165
* FixedModuleSize---4-----132*132
* FixedModuleSize---3-----99*99
* FixedModuleSize---2-----66*66
* FixedModuleSize---1-----33*33
*/
//直接把二维码 保存到文件
private void SaveCodeFile()
{
QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
QrCode code = new QrCode();
qrEncoder.TryEncode(str, out code);
const int modelSizeInPixels = ; GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(modelSizeInPixels, QuietZoneModules.Two)
, Brushes.Black, Brushes.White); string filename = LocalPathHelper.DesktopPath + "/one.png";
using (FileStream stream = new FileStream(filename, FileMode.Create))
{
render.WriteToStream(code.Matrix, ImageFormat.Png, stream);
}
}

显示结果:

最新文章

  1. C/C++,彩色图像小游戏。
  2. C++实现vector
  3. CSS水平垂直居中的几种方法2
  4. Swift---TextView用法
  5. pygame系列_原创百度随心听音乐播放器_完整版
  6. mysql样例数据库employees
  7. Indigo Studio
  8. 对话框Dialog
  9. PCA基础理解
  10. Stbdroid之ShapeDrawable
  11. 【Eclipse】Failed to load JavaHL Library
  12. Python运维开发基础-概述-简介
  13. ●BZOJ 4361 isn
  14. ES6部分知识点总结
  15. Effective Java 第三版——68. 遵守普遍接受的命名约定
  16. Redis入门到高可用(十八)—— 主从复制
  17. C++ 运算符的重载
  18. MongoDB 之 手把手教你增删改查 MongoDB - 2
  19. yolo源码解析(三)
  20. AOP AspectJ 字节码 语法 MD

热门文章

  1. Memory Analyzer Blog
  2. Paros抓包工具
  3. NSDictionary使用小结
  4. www
  5. CString与char *互转总结
  6. paip.输入法编程----一级汉字1000个
  7. mongodb3 权限认证问题总结
  8. Http GET、Post方式的请求总结
  9. 用RBG颜色设置自定义颜色
  10. Qt判断和打开进程(windows端),运行,检测,中止