博学而笃志 切问而近思 仁在其中
详情
C#二维码
作者:Aliot     发布时间:2017-08-15     评论:0     阅读:3

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

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

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


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(2, 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 = 4;

    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);
    }
}


上一篇:php生成二维码
下一篇:测试
相关文章
loading......
最新动态
所有评论

loading......

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册