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);
    }
    复制代码
  • 相关阅读:
    mysql qps tps
    SQL RIGHT JOIN 关键字
    C#的多态性
    c# 与java之间的简单区别
    多少行转多少列
    SQL语句中&、单引号等特殊符号的处理
    sql 函数的理解
    c# 基础之数组(包含三维数组)
    泛型之Dictionary
    在十六进制字符串与数值类型之间转换
  • 原文地址:https://www.cnblogs.com/Alex80/p/6860430.html
Copyright © 2011-2022 走看看