java与前端实现7种二维码
OC](java与前端实现7种二维码)
1、项目结构
springboot项目
2、后端
QrcodeController
package com.ljs.controller;import com.ljs.util.QrCodeUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;@RestController
public class QrcodeController {@PostMapping("/create")public String createQrcode(@RequestParam(value = "logoFile", required = false) MultipartFile file,@RequestParam(value = "text") String text,@RequestParam(value = "flag") String flag) {try {//特殊形状二维码//彩色二维码//生成普通二维码if (file != null) {if ("logo".equals(flag)) {return QrCodeUtil.logo(text, file.getInputStream());//生成logo二维码} else if ("background".equals(flag)) {return QrCodeUtil.bg(text, file.getInputStream()); //背景色二维码} else if ("imageFill".equals(flag)) {return QrCodeUtil.fill(text, file.getInputStream()); //图片填充二维码} else if ("gif".equals(flag)) {return QrCodeUtil.gif(text, file.getInputStream()); //动态二维码}}if ("normal".equals(flag)) {return QrCodeUtil.normal(text); //生成普通二维码} else if ("color".equals(flag)) {return QrCodeUtil.color(text); //彩色二维码} else if ("style".equals(flag)) {return QrCodeUtil.style(text); //特殊形状二维码}} catch (Exception e) {e.printStackTrace();}return null;}
}
QrCodeUtil
package com.ljs.util;import com.github.hui.quick.plugin.qrcode.wrapper.QrCodeGenWrapper;
import com.github.hui.quick.plugin.qrcode.wrapper.QrCodeOptions;
import com.google.zxing.WriterException;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;import java.awt.*;
import java.io.IOException;
import java.io.InputStream;/*** @author zyhstart* @create 2021-10-04-14:57*/
public class QrCodeUtil {//普通二维码public static String normal(String text) throws IOException, WriterException {return QrCodeGenWrapper.of(text).asString();}//logo二维码public static String logo(String text, InputStream logoFile) throws IOException, WriterException {return QrCodeGenWrapper.of(text).setLogo(logoFile).setLogoRate(7).setLogoStyle(QrCodeOptions.LogoStyle.ROUND).asString();}//彩色二维码public static String color(String text) throws IOException, WriterException {return QrCodeGenWrapper.of(text).setDrawPreColor(Color.RED).asString();}//背景色二维码public static String bg(String text,InputStream bgFile) throws IOException, WriterException {return QrCodeGenWrapper.of(text).setBgImg(bgFile).setBgStyle(QrCodeOptions.BgImgStyle.PENETRATE).setBgH(500).setBgW(500).setW(500).setH(500).asString();}//特殊二维码public static String style(String text) throws IOException, WriterException {return QrCodeGenWrapper.of(text).setBgH(500).setBgW(500).setW(500).setH(500).setDrawEnableScale(true).setDrawStyle(QrCodeOptions.DrawStyle.CIRCLE).asString();}//图片填充二维码public static String fill(String text,InputStream bgFile) throws IOException, WriterException {return QrCodeGenWrapper.of(text).setW(500).setH(500).setDrawEnableScale(true).setErrorCorrection(ErrorCorrectionLevel.H).setDrawStyle(QrCodeOptions.DrawStyle.IMAGE).addImg(1,1,bgFile).asString();}//gif二维码public static String gif(String text,InputStream bgFile) throws IOException, WriterException {return QrCodeGenWrapper.of(text).setW(500).setH(500).setBgImg(bgFile).setBgOpacity(0.5f).setPicType("gif").asString();}
}
start
package com.ljs;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Start {public static void main(String[] args) {SpringApplication.run(Start.class,args);}
}
application.properties
server.port=8080
spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=100MB
3、前端
index.html
<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="content-type" content="text/html;charset=UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><script src="https://code.jquery.com/jquery-3.3.1.min.js"></script><title>单文件上传</title>
</head>
<style>img[src=""],img:not([src]){opacity: 0;}
</style><body><form name="form" method="post" action="javascript:;"><input type="file" name="picpath" id="picpath"style="display: none;"onchange="document.form.path.value=this.value" multiple="multiple" accept="image/*" /><input name="path" readonly><input type="button" value="上传图片" onclick="document.form.picpath.click()"><input type="text" id="text" placeholder="请输入跳转链接"><img id="preview_photo" src="" width="200px" height="200px" >
</form>
<ul><li><input type="button" id="normal" value="生成普通二维码" onclick="upload('normal')"></li><li><input type="button" id="logo" value="生成logo二维码" onclick="upload('logo')"></li><li><input type="button" id="color" value="生成彩色二维码" onclick="upload('color')"></li><li><input type="button" id="background" value="生成带背景二维码" onclick="upload('background')"></li><li><input type="button" id="style" value="生成特殊形状二维码" onclick="upload('style')"></li><li><input type="button" id="imageFill" value="生成图片填充二维码" onclick="upload('imageFill')"></li><li><input type="button" id="gif" value="生成gif二维码" onclick="upload('gif')"></li>
</ul></body><script>/*** 上传图片*/function upload(flag) {var formData = new FormData();formData.append('logoFile',document.getElementById('picpath').files[0]);formData.append('text',document.getElementById('text').value);formData.append('flag',flag);$.ajax({url:"http://localhost:8080/create",type:"post",data: formData,contentType: false,processData: false,success: function (data) {$("#preview_photo").attr("src","data:image/jpeg;base64,"+data);},error:function (data) {alert("上传失败")}});}
</script>
</html>
效果图
java与前端实现7种二维码相关推荐
- java生成两种二维码
引言 在这篇博客中关于二维码的基本原理先不做介绍,先介绍我们怎样利用java语言实现二维码的生成,现在二维 码在我们生活中已经非常常见了,一言不合就扫码!所以对于我们这帮程序猿来说,需要研究一把这个东 ...
- Java中如何实现QR(二维码)的生成
二维码在我们的日常生活中的使用现在可谓是如火如荼.二维码,即一种新生代的信息存储介质.最早被使用在汽车生产厂,用于跟踪售后的汽车. 同样,在互联网时代,二维码也被广泛使用,随着二维码的迅速发展,一些手 ...
- JAVA微信公众号开发之二维码的创建与获取
微信文档说明 两种二维码: 1.临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量.临时二维码主要用于帐号绑定等不要求二维码永久保存的业务 ...
- Java和C#环境中制作二维码图片
二维码作为一种先进的应用,随着移动互联网和智能终端的普及而快速发展,在媒体.产品质量.仓储物流登各行各业都应用广泛.二维码具有存储量大.保密性高.追踪性高.抗损性强.被援性大.成本便宜等特性,这些特性 ...
- JS前端调用TSC打印二维码、条码
公司让用js调用TSC打印二维码,本人已调试成功,希望大家有所帮助! ActiveX下载地址:ActiveX下载地址! 实现代码:JS前端调用TSC打印二维码实现代码 <HTML> < ...
- java关于Zxing 生成带Logo 二维码图片失真问题
java关于Zxing 生成带Logo 二维码图片失真问题 问题点 logo本身是高清图片,但是Zxing生成的二维码中,logo像素失真,感觉被严重压缩一样. 排查问题 是Graphics2D 绘制 ...
- js前端根据链接生成二维码并转成图片下载
js前端根据链接生成二维码并转成图片下载 依赖于jquery.jquery.qrcode.min.js 1.html <div class="qrcode"></ ...
- JAVA 生成数据表图标LOGO二维码
JAVA 生成数据表图标LOGO二维码 private static final int QRCOLOR = 0xFF000000; // 默认是黑色private static final int ...
- 前端使用jr-qrcode生成二维码图片
前端使用jr-qrcode生成二维码图片 安装 引入 使用 结果 安装 npm install jr-qrcode -S 引入 import jrQrcode from 'jr-qrcode'; 使用 ...
最新文章
- linux用c++调用动态库
- linux sed 找出前后三行,Linux Sed 使用示例
- 魔术师发牌问题 java_魔术师发牌问题--java实现
- 中职计算机说课稿三篇,2020精选中职计算机说课稿3篇(15页)-原创力文档
- Java异常处理-----java异常体系
- IDEA常用插件整理
- matlab制作强光效果代码,自己动手做一个雷达PPI显示器的动态效果图(附Matlab代码)...
- java三种注释_Java中三种常见的注释(注解) Annotation
- MTRR内存类型范围寄存器
- php apk 分包,H5打包出APP,分包
- wpf DoEvents
- 去中介化的租房EOS DAPP,实现租客与房东互赢
- 1.9万亿美元市场,自动驾驶开发者向何处去?
- ISME:长江流域Comammox Nitrospira的群落、生物地理学和生态驱动者
- 亚甲基蓝在胃肠道恶性肿瘤淋巴结检获中应用价值的Meta分析
- 做工程设计类计算机配置,专业设计制图需要什么样的电脑?制图电脑配置要求 (全文)...
- 利用尾注插入参考文献
- Alibaba与gofair的对比
- 读冯唐先生的《天下卵》
- 计算机bios设置系统安装教程,电脑BIOS怎么设置光盘启动 三种类型BIOS设置详解图文教程...
热门文章
- Linux上:使用VMware17安装Centos8.5并配置网络、WSL安装Ubuntu、
- Gym 100712G Heavy Coins
- 问题:现有12个外形相同的小球,只有其中一个小球质量不同(不能确定较重还是较轻),请用天平找出是哪个小球不同,而且还要找出究竟是轻是重?条件:只能称三次
- Effie: 一款属于程序工作者的写作软件
- CSS:不可思议的border属性
- U盘安装ubuntu20.04并优化
- 二叉树的深度(前序 中序 后序 递归非递归搜素)、广度、搜索 C++
- Win32汇编:PE结构解析器
- 河南对口计算机本科学校有哪些,河南省 2017 年普通高等学校对口招收中等职业学校毕业生考试-计算机类基础课参考答案...
- 排球分组循环交叉编排_请问一下排球是怎么样编排的啊