zoukankan      html  css  js  c++  java
  • C# Gma.QrCodeNet生成二维码

    一.使用C#生成二维码类库之一是qrcodenet

    源代码地址:

    http://qrcodenet.codeplex.com/

    二.使用实例

    定义处理字符串

    static string url = "http://blog.csdn.net/u011127019";

    1.实例1

    //生成二维码
    static void Generate1()
    {
        //创建二维码生成类
        QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
        QrCode qrCode = qrEncoder.Encode(url);
        //输出显示在控制台
        for (int j = 0; j < qrCode.Matrix.Height; j++)
        {
            for (int i = 0; i < qrCode.Matrix.Width; i++)
            {
                char charToPoint = qrCode.Matrix[i, j] ? '' : ' ';
                Console.Write(charToPoint);
            }
            Console.WriteLine();
        }
    }

    2.生成二维码,保存成图片

    //生成图片
    static void Generate2()
    {
        QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
        QrCode qrCode = qrEncoder.Encode(url);
        //保存成png文件
        string filename = @"H:桌面截图url.png";
        GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
        using (FileStream stream = new FileStream(filename, FileMode.Create))
        {
            render.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream);
        }
    }

    3.支持中文

    //生成中文二维码
    static void Generate3()
    {
        QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
        QrCode qrCode = qrEncoder.Encode("我是小天马");
        //保存成png文件
        string filename = @"H:桌面截图cn.png";
        GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
    
        Bitmap map = new Bitmap(500, 500);
        Graphics g = Graphics.FromImage(map);
        g.FillRectangle(Brushes.Red, 0, 0, 500, 500);
        render.Draw(g, qrCode.Matrix, new Point(20, 20));
        map.Save(filename, ImageFormat.Png);
    }

    4.调整二维码大小

    //设置二维码大小
    static void Generate4()
    {
        QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
        QrCode qrCode = qrEncoder.Encode("我是小天马");
        //保存成png文件
        string filename = @"H:桌面截图size.png";
        //ModuleSize 设置图片大小  
        //QuietZoneModules 设置周边padding
        /*
            * 5----150*150    padding:5
            * 10----300*300   padding:10
            */
        GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(10, QuietZoneModules.Two), Brushes.Black, Brushes.White);
    
        Point padding = new Point(10, 10);
        DrawingSize dSize = render.SizeCalculator.GetSize(qrCode.Matrix.Width);
        Bitmap map = new Bitmap(dSize.CodeWidth + padding.X, dSize.CodeWidth + padding.Y);
        Graphics g = Graphics.FromImage(map);
        render.Draw(g, qrCode.Matrix, padding);
        map.Save(filename, ImageFormat.Png);
    }

    5.生成带Logo的二维码

    //生成带Logo的二维码
    static void Generate5()
    {
        QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
        QrCode qrCode = qrEncoder.Encode("我是小天马");
        //保存成png文件
        string filename = @"H:桌面截图logo.png";
        GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
    
        DrawingSize dSize = render.SizeCalculator.GetSize(qrCode.Matrix.Width);
        Bitmap map = new Bitmap(dSize.CodeWidth, dSize.CodeWidth);
        Graphics g = Graphics.FromImage(map);
        render.Draw(g, qrCode.Matrix);
        //追加Logo图片 ,注意控制Logo图片大小和二维码大小的比例
        Image img = Image.FromFile(@"F:JavaScript_SolutionQrCodeQrCodeImages101.jpg");
    
        Point imgPoint = new Point((map.Width - img.Width) / 2, (map.Height - img.Height) / 2);
        g.DrawImage(img, imgPoint.X, imgPoint.Y, img.Width, img.Height);
        map.Save(filename, ImageFormat.Png);
    }
  • 相关阅读:
    sitemap.xml
    Java--调试--单步调试,断言,单元测试
    同时显示多个 Notification
    HttpURLConnection请求数据流的写入(write)和读取(read)
    Spring jdbc 对象Mapper的简单封装
    mongodb之java CRUD 简单操作
    第三章 AOP 基于@AspectJ的AOP
    从源码角度深入分析log4j配置文件使用
    log4j.properties文件配置--官方文档
    JS问题Uncaught ReferenceError:XXXX is not defined
  • 原文地址:https://www.cnblogs.com/tianma3798/p/5425726.html
Copyright © 2011-2022 走看看