首页 > 其他分享 >QRCoderHelper-二维码的操作工具类

QRCoderHelper-二维码的操作工具类

时间:2024-05-07 22:13:54浏览次数:14  
标签:QRCoderHelper QRCodeGenerator Bitmap qrCode 二维码 QRCode 工具 public

/**
*┌──────────────────────────────────────────────────────────────┐
*│ 描    述:二维码QRCoder的操作工具类(QRCoder1.5.1)
*│ 作    者:执笔小白
*│ 版    本:1.0
*│ 创建时间:2023-06-22 16:21:56
*└──────────────────────────────────────────────────────────────┘
*┌──────────────────────────────────────────────────────────────┐
*│ 命名空间: Util.QRCoderHelpers
*│ 类    名:QRCoderHelper
*└──────────────────────────────────────────────────────────────┘
*/
using System;
using System.IO;
using QRCoder;
using System.Drawing.Imaging;


namespace Itextsharp_v416_QRCoder_Simple
{
    /// <summary>
    /// QRCoder的操作工具类
    /// </summary>
    public class QRCoderHelper
    {
        /// <summary>
        /// 生成二维码QRCode
        /// </summary>
        /// <param name="qrCodeDataStr">二维码数据</param>
        /// <param name="eCCLevel">设置容错率;默认为Q</param>
        /// <returns>返回QRCode对象</returns>
        public static QRCode CreateQRCode(string qrCodeDataStr, QRCodeGenerator.ECCLevel eCCLevel = QRCodeGenerator.ECCLevel.Q)
        {
            // QRCodeGenerator:二维码生成器
            // QRCodeData:二维码数据
            // QRCode:二维码

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(qrCodeDataStr, eCCLevel);  // 设置容错率;默认为Q
            QRCode qrCode = new QRCode(qrCodeData);

            return qrCode;
        }

        /// <summary>
        /// 生成二维码QRCode - 自定义图片
        /// </summary>
        /// <param name="qrCodeDataStr">二维码数据</param>
        /// <param name="eCCLevel">设置容错率;默认为Q</param>
        /// <param name="pixelsPerModule">像素点大小</param>
        /// <param name="darkColor">背景色</param>
        /// <param name="lightColor">前景色</param>
        /// <param name="icon">二维码中心图标</param>
        /// <param name="iconSizePercent">二维码中心图标_图标尺寸</param>
        /// <param name="iconBorderWidth">二维码中心图标_边框厚度</param>
        /// <param name="drawQuietZones">是否有白边</param>
        /// <param name="iconBackgroundColor">二维码中心图标_背景色</param>
        /// <returns>返回Bitmap图片</returns>
        public static Bitmap CreateQRCode(string qrCodeDataStr, QRCodeGenerator.ECCLevel eCCLevel,
            int pixelsPerModule, Color darkColor, Color lightColor,
            Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 0, bool drawQuietZones = true, Color? iconBackgroundColor = null)
        {
            // QRCodeGenerator:二维码生成器
            // QRCodeData:二维码数据
            // QRCode:二维码

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(qrCodeDataStr, eCCLevel);  // 设置容错率;默认为Q
            QRCode qrCode = new QRCode(qrCodeData);

            Bitmap qrCodeImage = qrCode.GetGraphic(pixelsPerModule, darkColor, lightColor, icon, iconSizePercent, iconBorderWidth, drawQuietZones, iconBackgroundColor);
            return qrCodeImage;
        }

        /// <summary>
        /// 保存二维码QRCode到文件
        /// </summary>
        /// <param name="qrCode">二维码</param>
        /// <param name="pixelsPerModule">像素大小</param>
        /// <param name="imageFormat">图片格式</param>
        /// <param name="path">保存路径</param>
        /// <returns>返回QRCode对象</returns>
        public static void CreateAndSaveQRCode(QRCode qrCode, int pixelsPerModule, ImageFormat imageFormat, string path)
        {
            Bitmap qrCodeImage = qrCode.GetGraphic(pixelsPerModule);
            qrCodeImage.Save(path, imageFormat);
        }

        /// <summary>
        /// 保存二维码图片到文件
        /// </summary>
        /// <param name="qrCodeImg">二维码图片</param>
        /// <param name="path">保存路径</param>
        /// <param name="imageFormat">图片格式</param>
        /// <returns>返回QRCode对象</returns>
        public static void CreateAndSaveQRCode(Bitmap qrCodeImg, string path, ImageFormat imageFormat)
        {
            qrCodeImg.Save(path, imageFormat);
        }
    }
}

 

标签:QRCoderHelper,QRCodeGenerator,Bitmap,qrCode,二维码,QRCode,工具,public
From: https://www.cnblogs.com/qq2806933146xiaobai/p/18178514

相关文章

  • 推荐几款AI写作工具:智能在线一键文章创作、代码编写、论文等
    在五一节的休假期结束之后,广大员工常常体验到了显著的疲劳,对立即恢复工作状态感到抗拒。虽然这种心态在职场中并不罕见,但工作的责任与需求仍需要我们去面对。在这种背景下,如何能够既保证工作效率与质量,又能为自己争取到宝贵的调整时间,成为了许多人士所关心的问题。确实,在长假过后......
  • 用这个开源工具在 React 中建立一个交互式时间轴
    用这个开源工具在React中建立一个交互式时间轴作者: KarolKozer 译者: LCTT geekpi |2023-02-2409:22     Planby是一个JavaScript组件,用于帮助创建流媒体服务、音乐和体育赛事等的时间表、时间线和电子节目指南(EPG)。几年来,我在电视在线和视频点播(VOD......
  • ETL工具怎么实现多流SQL实时运算?
    多流SQL实时运算的特点和应用场景多流SQL实时运算是一种先进的数据处理技术,它在大数据处理领域中扮演着至关重要的角色,尤其是在需要对多个数据流进行实时分析和处理的应用场景中。该技术结合了SQL(结构化查询语言)的易用性和流式计算的时效性,允许用户以声明式的方式对不断变化的数......
  • 文档提取工具 apache/tika
    docker安装拉取镜像dockerpullapache/tika:latest运行容器dockerrun-itd-p9998:9998--nametikaapache/tika:latest使用命令行模式curl-s-XPUT-T./test.txtlocalhost:9998/tika--header'Accept:text/plain'golangpackagemainimport( "contex......
  • 高效项目管理:如何利用zz-plan在线甘特图工具
    作为项目管理人员,使用zz-planhttps://zz-plan.com/这样的在线甘特图协作软件可以极大地提高项目管理的效率和效果。以下是结合zz-plan特点的一些关键步骤: 1.制定项目计划在zz-plan上创建新的项目,定义项目目标、关键里程碑和最终期限。利用甘特图清晰地规划出每个任务的时......
  • 03_仿Modbus工具案例
    花了6个小时边学边写的Modbus通信案例,通信方式包括RTU,ASCII,TCP,UTP。案例图:   usingModbus.Data;usingModbus.Device;usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.IO.......
  • Linux性能分析工具-perf并生成火焰图
    一、perf安装及简介1.安装perf1.Ubuntu/Debianaptinstalllinux-tools-commonaptinstalllinux-tools-5.15.0-101-generic2.Centos/Redhatyuminstallperf-y2.常用的perf命令及其功能annotate读取perf.data(由perfrecord生成)并结合源代码展示详细的性......
  • golang生成二维码图片,支持图片下方增加多行居中文本
    golang生成二维码图片,支持图片下方增加多行居中文本效果工具类代码packageUtilsimport( "bytes" "fmt" "github.com/golang/freetype/truetype" "github.com/skip2/go-qrcode" "golang.org/x/image/font" "golang.org/x/image/math......
  • Whose:轻量级搜索引擎工具
    #Whoosh简介Whoosh由MattChaput创建,它一开始是一个为Houdini3D动画软件包的在线文档提供简单、快速的搜索服务工具,之后便慢慢成为一个成熟的搜索解决工具并已开源。Whoosh纯由Python编写而成,是一个灵活的,方便的,轻量级的搜索引擎工具,现在同时支持Python2、3,其优点如......
  • LangSegment:多语言(97种语言)的混合文本自动分词工具
    项目简介它是一个强大的多语言(97种语言)的混合文本自动分词工具。[中日英韩:已测试]主要用途:它非常适合各种TTS语音合成项目,多语种混合文本的前端推理,和预处理后端训练。它基于py3langid的扩展实现(>=python3.6)。LangSegmentItisamulti-lingual(97languages)textcon......