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);
    }
  • 相关阅读:
    C++学习(一)之Visual Studio安装以及首次使用
    基于BP的B/S架构破解
    铁三测试题——权限、你是管理员吗?——WP
    实验吧—安全杂项——WP之 flag.xls
    实验吧—安全杂项——WP之 女神
    wireshark显示过滤器的几种用法(转自他人博客)
    实验吧—安全杂项——WP之 你知道他是谁吗?
    实验吧—Web——WP之 FALSE
    实验吧—Web——WP之 Guess Next Session
    实验吧—Web——WP之 简单的sql注入之2
  • 原文地址:https://www.cnblogs.com/tianma3798/p/5425726.html
Copyright © 2011-2022 走看看