二维码生成和下载实例

简介: 设置指定信息生成二维码和下载实例 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



目录
相关文章
|
3月前
|
Linux 开发者 iOS开发
QT:基于QMediaPlayer制作的视频播放器(最下方有整合包,可直接运行)
QMediaPlayer是Qt多媒体模块中的一个核心类,它提供了播放音频和视频内容的功能。这个类的设计旨在简化跨平台的媒体播放,使得开发者能够在多种操作系统(如Linux、Windows、macOS及移动平台)上轻松集成多媒体播放能力到他们的应用中,而无需关心底层实现细节。以下是关于QMediaPlayer的一些关键点:
218 1
|
存储 PHP 数据安全/隐私保护
Ueditor结合七牛云存储上传图片、附件和图片在线管理的实现和最新更新
最新下载地址: https://github.com/widuu/qiniu_ueditor_1.4.3 Ueditor七牛云存储版本 注意事项 老版本请查看 : https://github.com/widuu/qiniu_ueditor_1.
3103 0
|
11月前
|
前端开发 JavaScript
uniapp上传图片至服务器,获得在线图片链接预览(实战)
uniapp上传图片至服务器,获得在线图片链接预览(实战)
416 0
|
前端开发
织梦dedecms评论助手插件(支持图片视频上传与随机头像功能)
织梦评论助手是一款评论插件,安装后可以替代原有的织梦评论,立即拥有一个属于你自己网站的友好的评论系统。支持评论图片视频上传与评论者随机头像功能。
使用APICloud实现文档下载和预览功能
使用 APICloud 开发 app 时,可以使用 api.download 方法实现下载;预览文档可以使用 superFile 模块。superFile 模块封装了基于腾讯浏览服务 TBS,使用 X5Webkit 内核,实现文件的展示功能,支持多种文件格式(PDF、Word、Execl、TXT、PPT)。
480 0
APICloud 实现文档下载和预览功能
文档下载是很多app,尤其是企业应用中常用的功能。使用APICloud开发app时,可以使用api.download方法实现下载;预览文档可以使用superFile 模块。superFile 模块封装了基于腾讯浏览服务TBS,使用X5Webkit内核,实现文件的展示功能,支持多种文件格式(PDF、Word、Execl、TXT、PPT)。
303 0
APICloud 实现文档下载和预览功能
|
PHP 数据格式 XML
给微赞程序富文本编辑器加上传附件功能
微赞程序中,新闻编辑中,使用的ueditor,做了定制,去掉了一些按钮,但是一些情况下需要上传附件 如果给ueditor加上上传附件的图标,富文本编辑的调用是使用了以下函数的 function tpl_ueditor($id, $value = '', $options = array()) { 函数所在位置在/web/common/tpl.func.php这个文件中约985
2348 0
|
数据安全/隐私保护 Shell Linux
关于wordpress主题、插件上传和下载问题及其上传图片权限问题解决方案
主题官方下载地址:https://wordpress.org/themes/ 插件官方下载地址: https://wordpress.org/plugins/ 主题的上传下载,无疑是需要ftp服务器的。
2497 0