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种二维码相关推荐

  1. java生成两种二维码

    引言 在这篇博客中关于二维码的基本原理先不做介绍,先介绍我们怎样利用java语言实现二维码的生成,现在二维 码在我们生活中已经非常常见了,一言不合就扫码!所以对于我们这帮程序猿来说,需要研究一把这个东 ...

  2. Java中如何实现QR(二维码)的生成

    二维码在我们的日常生活中的使用现在可谓是如火如荼.二维码,即一种新生代的信息存储介质.最早被使用在汽车生产厂,用于跟踪售后的汽车. 同样,在互联网时代,二维码也被广泛使用,随着二维码的迅速发展,一些手 ...

  3. JAVA微信公众号开发之二维码的创建与获取

    微信文档说明 两种二维码: 1.临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量.临时二维码主要用于帐号绑定等不要求二维码永久保存的业务 ...

  4. Java和C#环境中制作二维码图片

    二维码作为一种先进的应用,随着移动互联网和智能终端的普及而快速发展,在媒体.产品质量.仓储物流登各行各业都应用广泛.二维码具有存储量大.保密性高.追踪性高.抗损性强.被援性大.成本便宜等特性,这些特性 ...

  5. JS前端调用TSC打印二维码、条码

    公司让用js调用TSC打印二维码,本人已调试成功,希望大家有所帮助! ActiveX下载地址:ActiveX下载地址! 实现代码:JS前端调用TSC打印二维码实现代码 <HTML> < ...

  6. java关于Zxing 生成带Logo 二维码图片失真问题

    java关于Zxing 生成带Logo 二维码图片失真问题 问题点 logo本身是高清图片,但是Zxing生成的二维码中,logo像素失真,感觉被严重压缩一样. 排查问题 是Graphics2D 绘制 ...

  7. js前端根据链接生成二维码并转成图片下载

    js前端根据链接生成二维码并转成图片下载 依赖于jquery.jquery.qrcode.min.js 1.html <div class="qrcode"></ ...

  8. JAVA 生成数据表图标LOGO二维码

    JAVA 生成数据表图标LOGO二维码 private static final int QRCOLOR = 0xFF000000; // 默认是黑色private static final int ...

  9. 前端使用jr-qrcode生成二维码图片

    前端使用jr-qrcode生成二维码图片 安装 引入 使用 结果 安装 npm install jr-qrcode -S 引入 import jrQrcode from 'jr-qrcode'; 使用 ...

最新文章

  1. linux用c++调用动态库
  2. linux sed 找出前后三行,Linux Sed 使用示例
  3. 魔术师发牌问题 java_魔术师发牌问题--java实现
  4. 中职计算机说课稿三篇,2020精选中职计算机说课稿3篇(15页)-原创力文档
  5. Java异常处理-----java异常体系
  6. IDEA常用插件整理
  7. matlab制作强光效果代码,自己动手做一个雷达PPI显示器的动态效果图(附Matlab代码)...
  8. java三种注释_Java中三种常见的注释(注解) Annotation
  9. MTRR内存类型范围寄存器
  10. php apk 分包,H5打包出APP,分包
  11. wpf DoEvents
  12. 去中介化的租房EOS DAPP,实现租客与房东互赢
  13. 1.9万亿美元市场,自动驾驶开发者向何处去?
  14. ISME:长江流域Comammox Nitrospira的群落、生物地理学和生态驱动者
  15. 亚甲基蓝在胃肠道恶性肿瘤淋巴结检获中应用价值的Meta分析
  16. 做工程设计类计算机配置,专业设计制图需要什么样的电脑?制图电脑配置要求 (全文)...
  17. 利用尾注插入参考文献
  18. Alibaba与gofair的对比
  19. 读冯唐先生的《天下卵》
  20. 计算机bios设置系统安装教程,电脑BIOS怎么设置光盘启动 三种类型BIOS设置详解图文教程...

热门文章

  1. Linux上:使用VMware17安装Centos8.5并配置网络、WSL安装Ubuntu、
  2. Gym 100712G Heavy Coins
  3. 问题:现有12个外形相同的小球,只有其中一个小球质量不同(不能确定较重还是较轻),请用天平找出是哪个小球不同,而且还要找出究竟是轻是重?条件:只能称三次
  4. Effie: 一款属于程序工作者的写作软件
  5. CSS:不可思议的border属性
  6. U盘安装ubuntu20.04并优化
  7. 二叉树的深度(前序 中序 后序 递归非递归搜素)、广度、搜索 C++
  8. Win32汇编:PE结构解析器
  9. 河南对口计算机本科学校有哪些,河南省 2017 年普通高等学校对口招收中等职业学校毕业生考试-计算机类基础课参考答案...
  10. 排球分组循环交叉编排_请问一下排球是怎么样编排的啊