C# 根据字符串生成二维码的实例代码
作者:江北 发布时间:2023-09-16 09:06:50
标签:c#,字符串,生成,二维码
1.先下载NuGet包(ZXing.Net)
2.新建控制器及编写后台代码
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ZXing;
using ZXing.QrCode;
namespace WebApplication1.Controllers
{
public class StrController : Controller
{
// GET: Str
public ActionResult Index()
{
return View();
}
/// <summary>
/// 生成二维码方法
/// </summary>
/// <param name="text">输入的字符串</param>
/// <param name="width">二维码宽度</param>
/// <param name="height">二维码高度</param>
/// <returns></returns>
public string QRcode(string text, string width, string height)
{
string Response = "";
try
{
BarcodeWriter writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
QrCodeEncodingOptions options = new QrCodeEncodingOptions();
options.DisableECI = true;
//设置内容编码
options.CharacterSet = "UTF-8";
//将传来的值赋给二维码的宽度和高度
options.Width = Convert.ToInt32(width);
options.Height = Convert.ToInt32(height);
//设置二维码的边距,单位不是固定像素
options.Margin = 1;
writer.Options = options;
Bitmap map = writer.Write(text);
string di = text + DateTime.Now.ToString("yyyyMMddHHmmss") + ".png";
//二维码会显示在桌面(你也想显示在桌面的话,要改一下路径)
string path = Path.Combine("C:\\Users\\zhulin\\Desktop", di);
map.Save(path, ImageFormat.Png);
map.Dispose();
Response = "二维码生成成功!";
}
catch (Exception)
{
Response = "二维码生成失败!";
}
return Response;
}
}
}
3.前端
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link href="~/Scripts/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" />
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btn").click(function () {
var w = $("#wd").val();
var h = $("#hg").val();
var text = $("#tx").val();
$.ajax({
url: "/Str/QRcode",
data: "text=" + text + "&width=" + w + "&height=" + h,
success: function (e) {
alert(e);
}
});
});
})
</script>
</head>
<body>
<div style="margin-top:20px;margin-left:20px;">
<p>高度:<input type="text" style="width:60px;height:32px;border:1px solid #66b1ff;margin-left:3px;" id="wd" /><span style="margin-left:10px;">宽度:</span><input type="text" style="width:60px;height:32px;border:1px solid #66b1ff;margin-left:3px;" id="hg" /></p>
<input type="text" style="width:200px;height:32px;border:1px solid #66b1ff;" id="tx" placeholder="请输入字符串..." /><button type="button" class="btn btn-info" id="btn" style="margin-left:5px;margin-top:-1px;height:33px;">提交</button>
</div>
</body>
</html>
4.效果:
来源:https://www.cnblogs.com/zhangnever/p/11271990.html


猜你喜欢
- 最近在学习spring boot框架的路上,今日看了一下spring boot日志配置,顺便留个笔记记录一下。1.新建logback.xml
- java -version 命令大家都用过,大部分就是看下jdk版本或检查下环境变量的设置,但最后一行的信息也挺重要,如下图所示:Serve
- 本文给大家带来一个很实用的小控件ClearEditText,就是在Android系统的输入框右边加入一个小图标,点击小图标可以清除输入框里面
- 前言在日常开发过程中,静态变量和 静态方法 是我们常见的用法,Java中相信大家并不陌生了,那么在 Kotlin 中该如何使用呢
- 一、创建字符串创建字符串的方式有很多种,当是常见的一般就三种1. 直接赋值(常用)String str = "hello worl
- 引言因为写了不少 Spring Security 文章的缘故,所以总是有小伙伴来问松哥:按钮级别的权限怎么实现?甚至有一些看过 vhr 的小
- Usage扩展函数是 kotlin 的又一杀手锏功能,能够在不修改源码的基础上,扩展某些类的能力,方便开发。例如这里演示了给 String
- 一、单文件压缩 场景,文件可能比较大,需要压缩传输,比如上传和下载/// <summary&g
- 根据需求,我们要拿到h5的错误信息,并将error信息进行上报。查询了下Android WebView的API发现了WebChromeCli
- 1.alibaba falstjson1.Map转JSONMap<String, Object> map = new HashM
- mybatis-plus返回查询总记录数mp框架提供了selectCount方法,来查询总记录数;需求:查找薪水大于3500 名字里有&am
- 废话不多说,上代码String basePath = request.getScheme()+"://"+request
- 译文链接: https://www.infoworld.com/art...AutoMapper 是一个非常流行的 object-to-ob
- 目录常见的实现方式效果图:完整代码布局代码常见的实现方式切图,做旋转动画自定义View,绘制效果gif图1、切图会增加体积,但相对简单,不过
- 前言WebView(网络视图)在Andorid中就是用来显示网页的,下面我们来一起看看它是如何使用的。一、基本使用1.声明权限,WebVie
- 项目介绍springboot搭建的访客管理系统,针对高端基地做严格把控来访人员信息管理,用户后端可以设置多个管理员帐号,给予不同部门的管理层
- 我在做毕设的时候采用shiro进行登录认证和权限管理的实现。其中需求涉及使用三个角色分别是:学生、教师、管理员。现在要三者实现分开登录。即需
- 在.NET FrameWork中有多个Timer,那么怎么根据实际情况进行选择确实是一个问题。总体而言,计时器共有以下四种:多线程计时器:1
- 我们在开发中经常用到倒计时的功能,比如发送验证码后,倒计时60s再进行验证码的获取,为了方便以后使用,这里做个记录,讲讲倒计时器的实现。&n
- 今天使用mybatis-plus自动填充插入和更新时间有8小时时差后来发现只需要修改一下mybaits连接的url即可原先我是用的datas