• 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);
    }
    复制代码
  • 相关阅读:
    Linux split分割xls或csv文件
    python安装mysql/mysqlclient 无法打开mysql.h问题解决(win10 64位 )
    Linux Centos 7 安装文件服务器MinIO
    RabbitMQ——Virtual Host
    vue中的for循环数组数据时,修改了数组中的值页面不重新渲染for循环节点数据的问题
    vue刷新数组 Y
    uniapp返回上一页并传参
    linux常用命令基础
    如何解压带密码的压缩包
    hive 视图的使用方法
  • 原文地址:https://www.cnblogs.com/Alex80/p/6860430.html
Copyright © 2020-2023  润新知