二维码生成和下载实例

简介: 设置指定信息生成二维码和下载实例 using System;using System.Collections.Generic;using System.

设置指定信息生成二维码和下载实例

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MessagingToolkit.QRCode.Codec;
using System.Drawing.Drawing2D;

namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeBackgroundColor = Color.Transparent;
            //qrCodeEncoder.QRCodeForegroundColor = Color.Orange;
            //qrCodeEncoder.CharacterSet = CharacterSets[cboCharacterSet.Text];
            qrCodeEncoder.QRCodeScale = int.Parse(textBox2.Text);
            Bitmap image = qrCodeEncoder.Encode(textBox1.Text);
            pictureBox1.Image = CombinImage(image,System.IO.Directory.GetCurrentDirectory()+ "\\logo.png", textBox3.Text);


            pictureBox1.Height = pictureBox1.Image.Height;
            pictureBox1.Width = pictureBox1.Image.Width;

            image.Save("./" + textBox3.Text + ".png");
        }

        /// <summary>  
        /// 调用此函数后使此两种图片合并,类似相册,有个  
        /// 背景图,中间贴自己的目标图片  
        /// </summary>  
        /// <param name="imgBack">粘贴的源图片</param>  
        /// <param name="destImg">Logo图片</param>  
        public static Image CombinImage(Image imageCode, string logoImagePath, string words)
        {
            Image imageLogo = Image.FromFile(logoImagePath);        //照片图片    
            if (imageLogo.Height != 65 || imageLogo.Width != 65)
            {
                imageLogo = KiResizeImage(imageLogo, 65, 65, 0);
            }
            Graphics g = Graphics.FromImage(imageCode);

            g.DrawImage(imageCode, 0, 0, imageCode.Width, imageCode.Height);

            //g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 - 1, imgBack.Width / 2 - img.Width / 2 - 1,1,1);//相片四周刷一层黑色边框  
            //g.DrawImage(img, 照片与相框的左边距, 照片与相框的上边距, 照片宽, 照片高);  

            int x = imageCode.Width / 2 - imageLogo.Width / 2;
            int y = imageCode.Width / 2 - imageLogo.Width / 2;

            g.DrawImage(imageLogo, x, y, imageLogo.Width, imageLogo.Height);

            //添加文字
            Font font = new System.Drawing.Font("微软雅黑", 30F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));

            x = x - (int)(font.Size * words.Length) / 4;

            g.DrawString(words, font, Brushes.Orange, new Point(x, y + imageLogo.Height));

            g.Dispose();

            return imageCode;
        }


        /// <summary>  
        /// Resize图片  
        /// </summary>  
        /// <param name="bmp">原始Bitmap</param>  
        /// <param name="newW">新的宽度</param>  
        /// <param name="newH">新的高度</param>  
        /// <param name="Mode">保留着,暂时未用</param>  
        /// <returns>处理以后的图片</returns>  
        public static Image KiResizeImage(Image bmp, int newW, int newH, int Mode)
        {
            try
            {
                Image b = new Bitmap(newW, newH);
                Graphics g = Graphics.FromImage(b);
                // 插值算法的质量  
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
                g.Dispose();
                return b;
            }
            catch
            {
                return null;
            }
        }
    }
}


http://download.csdn.net/detail/fuyifang/7792287



目录
相关文章
钉钉宜搭6月15日版本更新:手写签名和定位组件来啦!
本次版本更新主要针对流程、表单进行了组件能力升级,新增了手写签名和定位2个组件,同时升级地址、人员和部门3个组件。
2857 0
钉钉宜搭6月15日版本更新:手写签名和定位组件来啦!
|
4月前
|
敏捷开发 数据可视化 BI
远程团队看板工具全指南:2025年最强推荐与实践策略
《远程团队看板工具:提升协作效率的利器》摘要 远程看板工具正成为现代团队协作的核心,通过可视化任务流、实时同步和进度追踪,有效解决远程办公中的信息不对称问题。本文系统介绍了看板工具的基本概念、核心功能(包括任务可视化、多人协作、时间管理等),并对比了Trello、Jira、Asana等主流产品的特点。针对选型策略,建议从团队规模、易用性、集成能力三个维度考量。文章还分享了任务拆解、每日站会等实用技巧,并解答了数据安全等常见问题。最后强调,合适的看板工具能显著提升远程团队的工作效率和凝聚力。
151 5
|
4月前
|
安全 Java API
Java 8 Stream API:高效集合处理的利器
Java 8 Stream API:高效集合处理的利器
290 83
|
5月前
|
监控 Linux
Linux系统中使用df命令详解磁盘使用情况。
`df`命令是Linux系统管理员和用户监控和管理磁盘空间使用的重要工具。掌握它的基本使用方法和选项可以帮助在必要时分析和解决空间相关问题。简洁但功能丰富,`df`命令确保了用户可以快速有效地识别和管理文件系统的空间使用情况。
424 13
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
飞桨x昇腾生态适配方案:00_整体方案介绍
本文详细介绍PaddlePaddle与NPU的适配工作,涵盖训练与推理支持、性能优化及离线推理方案。PaddleCustomDevice作为适配层,支持主流模型(详见飞桨-昇腾模型列表),多数性能媲美V100,部分调优模型接近0.8*A800。硬件适配主要针对A2芯片,A1兼容但310系列建议离线推理。提供常用模型仓链接及整体方案导览,包括环境准备、算子适配、性能调优和Paddle转ONNX/OM等内容。
331 0
|
10月前
|
存储 IDE 开发工具
ModelScope魔搭25年1月版本发布月报
随着2025年帷幕的缓缓拉开,ModelScope团队怀着新年新气象的美好期许,为广大开发者带来了1月份的重磅更新。
462 13
|
机器学习/深度学习 存储 开发框架
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
|
关系型数据库 MySQL 数据挖掘
数据统计与计数:解析MySQL中的COUNT()函数
在数据库管理中,统计某一列数据的行数是常见的数据分析任务,COUNT()函数正是用于帮助我们实现这一目标的工具。
670 0
|
存储 弹性计算 运维
AloT 企业物联网平台入门01(一)
AloT 企业物联网平台入门01(一)
1197 0
AloT 企业物联网平台入门01(一)
|
机器学习/深度学习 算法 开发者
不等式约束条件下求极值2| 学习笔记
快速学习不等式约束条件下求极值2。
不等式约束条件下求极值2| 学习笔记