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

    QrCode.net地址 http://qrcodenet.codeplex.com

    QrCode.net 是用C#编写生成二维码的项目,它支持C#、silverlight、winRT

    新建一个winform程序后,引用Gma.QrCodeNet.Encoding.dll

    然后在工具箱中添加一个选项卡,然后右键选择项,选择Gma.QrCodeNet.Encoding.dll,然后出现如图所示的控件

    将两个控件拖入winform窗体中

    private Color _lightModule = Color.FromArgb(220, 100, 203, 50);
            private Color _darkModule = Color.FromArgb(170, 20, 250, 220);
    
            public FrmQr()
            {
                InitializeComponent();
                qcicHello.DarkBrush = new SolidBrush(_darkModule);
                qcicHello.LightBrush = new SolidBrush(_lightModule);
                qcicHello.Text = txtInput.Text.Trim();
                qcgcHello.Text = txtInput.Text.Trim();
                ContrastCal();
            }
    
            private void btnSave_Click(object sender, EventArgs e)
            {
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = @"PNG (*.png)|*.png|Bitmap (*.bmp)|*.bmp|Encapsuled PostScript (*.eps)|*.eps|SVG (*.svg)|*.svg";
                saveFileDialog.FileName = Path.GetFileName(GetFileNameProposal());
                saveFileDialog.DefaultExt = "png";
    
                if (saveFileDialog.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
    
                if (saveFileDialog.FileName.EndsWith("eps"))
                {
                    BitMatrix matrix = qcgcHello.GetQrMatrix();
    
                    // 初始化 the EPS renderer
                    var renderer = new EncapsulatedPostScriptRenderer(
                        new FixedModuleSize(6, QuietZoneModules.Two), // Modules size is 6/72th inch (72 points = 1 inch)
                        new FormColor(Color.Black), new FormColor(Color.White));
    
                    using (var file = File.Open(saveFileDialog.FileName, FileMode.CreateNew))
                    {
                        renderer.WriteToStream(matrix, file);
                    }
                }
                else if (saveFileDialog.FileName.EndsWith("svg"))
                {
                    BitMatrix matrix = qcgcHello.GetQrMatrix();
    
                    // 初始化 EPS renderer
                    var renderer = new SVGRenderer(
                        new FixedModuleSize(6, QuietZoneModules.Two), // Modules size is 6/72th inch (72 points = 1 inch)
                        new FormColor(Color.FromArgb(150, 200, 200, 210)), new FormColor(Color.FromArgb(200, 255, 155, 0)));
    
                    using (var file = File.OpenWrite(saveFileDialog.FileName))
                    {
                        renderer.WriteToStream(matrix, file, false);
                    }
                }
                else
                {
    
                    GraphicsRenderer gRender = new GraphicsRenderer(new FixedModuleSize(30, QuietZoneModules.Four));
                    BitMatrix matrix = qcgcHello.GetQrMatrix();
                    using (FileStream stream = new FileStream(saveFileDialog.FileName, FileMode.Create))
                    {
                        gRender.WriteToStream(matrix, ImageFormat.Png, stream, new Point(600, 600));
                    }
                }
            }
    
            private void txtInput_TextChanged(object sender, EventArgs e)
            {
                qcicHello.Text = txtInput.Text.Trim();
                qcgcHello.Text = txtInput.Text.Trim();
            }
    
            private string GetFileNameProposal()
            {
                return txtInput.Text.Length > 10 ? txtInput.Text.Substring(0, 10) : txtInput.Text;
            }
    
    
            private void ContrastCal()
            {
                SolidBrush darkmoduleBrush = qcicHello.DarkBrush as SolidBrush;
                SolidBrush lightmoduleBrush = qcicHello.LightBrush as SolidBrush;
                Color darkmodule = darkmoduleBrush == null ? _darkModule : darkmoduleBrush.Color;
                Color lightmodule = lightmoduleBrush == null ? _lightModule : lightmoduleBrush.Color;
    
                Contrast ctrast = ColorContrast.GetContrast(new FormColor(lightmodule), new FormColor(darkmodule));
    
                label1.Text = ctrast.Ratio.ToString();
            }
        }
    View Code
  • 相关阅读:
    java 多线程小记
    Java通过反射实现实例化
    selenium webdriver 屏幕滚动
    selenium webdriver 实现百度贴吧自动签到
    selenium webdriver 小计
    JaveWeb 公司项目(7)----- 通过JS动态生成DIV
    两个DIV并排显示
    Intellij idea注册码失效
    JaveWeb 公司项目(6)----- 通过ToolTip给控件添加动态注释
    Intellij idea 添加浏览器
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/3951715.html
Copyright © 2011-2022 走看看