最新Intellij Idea2020.01使用java代码创建二维码
使用工具
idea
springboot
maven
用idea创建一个maven工程
在pom.xml
添加依赖
<properties>
<java.version>1.8</java.version>
</properties>
<!-- 这个项目是springboot项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.0</version>
</dependency>
</dependencies>
创建 package
以及javaclass
如我的文件夹 在alibaba下创建myapp 然后在创建同级package controller
创建QrCodeController
QrCodeController完整代码
package com.alibaba.comtroller;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@RestController
public class QrCodecController {
@RequestMapping("code")
public void generateQrCode(HttpServletResponse response) throws WriterException, IOException {
ServletOutputStream outputStream =response.getOutputStream();
/*
工厂类,用来给我们生成构造各种码(二维码,条形码)
*/
MultiFormatWriter multiFormatWriter =new MultiFormatWriter();
/*生成一个为矩阵*/
/*二维码的内容 扫描二维码时会出现文字*/
/*format生成二维码的类型 QR_CODE*/
/*
中间有你的头像
可以是彩色 不是黑白色
*/
String contents="i miss you hello readers!";
BarcodeFormat format=BarcodeFormat.QR_CODE;
int width=400;
int height=400;
/*位矩阵*/
Map<EncodeHintType, Object> hints=new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.MARGIN,1);
BitMatrix bitMatrix= multiFormatWriter.encode(contents,format,width,height,hints);
MatrixToImageWriter.writeToStream(bitMatrix,"jpg",outputStream);
}
}
在myapp 输入代码
package com.alibaba;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
/*
引导类
注解: 注解就是一个标识,他是给java虚拟机看的。
*/
@SpringBootApplication
public class myapp {
public static void main(String args[]){
SpringApplication.run(myapp.class,args);
}
}
点击myapp旁边 进行Run 或者右上角进行编译运行
运行编译后台出现
说明 编译成功 观察 tomcat的地址
打开浏览器 输入地址 http://localhost:9090/demo/code
扫描 就可以出现自己写入的文字
文字框 在这里可以输入自己想输入的文字
注意 url地址 的来由
http://localhost:9090/demo/code
demo
在resource 下创建application.properties文件
这里可以修改一些配置 我修改了tomcat的地址和 path
这里是mapping地址
所以总地址
http://localhost:9090/demo/code