使用IDEA创建一个通过url链接生成二维码的java程序|自动生成二维码
2021/7/15 22:07:35
本文主要是介绍使用IDEA创建一个通过url链接生成二维码的java程序|自动生成二维码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
平时使用了那么多的二维码,今天我们自己做一个二维码。今天刚安装了IDEA,学会了用法,就来通过IDEA做一个生成二维码的程序。
首先新建一个项目
设置项目名称
点击Next之后,出现下图所示页面:
这里要注意,都是默认的就行(但是记住框出的文件目录,之后会有用 ),然后Finish完成项目创建。项目创建成功之后是要下载 jar 包到项目中的,但是,默认的下载路径是一个国外的下载网站,会比减慢,所以要配置下载路径,这时候就需要刚才的目录了,在刚才的目录下放入settings.xml,文件参考下载。文件放入如图目录实例:
放入文件之后,在进入IDEA,等待下载完成就行了。
那么问题来了,如果下载失败怎么办呢?
下载失败没事,一般添加配置文件更改下载地址之后第一次容易出错,以后就不会了。鼠标放到项目名称上,右键 ---- Open In ---- Explorer ---- 选中创建的项目删掉,然后关闭IDEA再重新进入,按照上边的过程再建立一个项目就可以了。第一次已经添加过,这时候并不需要再次添加配置文件,等待下载即可,下载完成后的界面如图:
然后打开项目下的pom.xml文件,添加如下配置:
<dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.3</version> </dependency>
保存文件,然后点击右上角的图标再次下载jar包,等待下载完成。
然后就是开始创建java类,导包之类的了。
创建java类的步骤就不多做描述了,新建Javaclass类Code,直接上图
然后就是在Code 文件中写java代码了,先上代码:
import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.imageio.ImageIO; 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.MatrixToImageConfig; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.common.CharacterSetECI; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; /** * QRCode工具类 * * @author: GaoHuanjie */ public class Code { /** * 生成二维码 * * @author GaoHuanjie * */ public static boolean createQRCode(String content, int width, int height, int margin, String filePath, String fileName, String formatName) throws Exception { if (content == null || content.equals("")) { throw new Exception("二维码内容不能为空。"); } // 二维码基本参数设置 Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>(); hints.put(EncodeHintType.CHARACTER_SET, CharacterSetECI.UTF8);// 设置编码字符集utf-8 hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);// 设置纠错等级L/M/Q/H,当二维码被损毁一部分时,纠错等级越高,越可能读取成功;同样的,纠错等级越高,单位面积内点阵的点越多,机器扫描时,识别所需时间越长,当前设置等级为最高等级H hints.put(EncodeHintType.MARGIN, margin);// 可设置范围为0-10,但仅四个变化0 1(2) 3(4 5 6) 7(8 9 10) // 生成图片类型为QRCode BarcodeFormat format = BarcodeFormat.QR_CODE; // 创建位矩阵对象 BitMatrix matrix = null; try { // 生成二维码对应的位矩阵对象 matrix = new MultiFormatWriter().encode(content, format, width, height, hints); } catch (WriterException e) { e.printStackTrace(); } // 设置位矩阵转图片的参数 MatrixToImageConfig config = new MatrixToImageConfig(Color.black.getRGB(), Color.white.getRGB()); // 位矩阵对象转BufferedImage对象 BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(matrix, config); // 判断路径是否存在,不存在则创建 File path = new File(filePath); if (!path.exists()) { path.mkdirs(); } // 路径后补充斜杠 if (filePath.lastIndexOf("\\") != filePath.length() - 1) { filePath = filePath + "\\"; } // 二维码全路径 filePath = filePath + fileName + "." + formatName; try { // 输出图片文件到指定位置 return ImageIO.write(bufferedImage, formatName, new File(filePath)); } catch (IOException e) { e.printStackTrace(); } return false; } public static void main(String[] args) { String content = "https://image.baidu.com/search/detail?ct=503316480&z=&tn=baiduimagedetail&ipn=d&word=%E5%A3%81%E7%BA%B8&step_word=&ie=utf-8&in=&cl=2&lm=-1&st=-1&hd=undefined&latest=undefined©right=undefined&cs=2544377084,275372641&os=3052229399,834441112&simid=3533086814,586585425&pn=59&rn=1&di=72930&ln=3476&fr=&fmq=1526269427171_R&fm=&ic=0&s=undefined&se=&sme=&tab=0&width=&height=&face=undefined&is=0,0&istype=2&ist=&jit=&bdtype=0&spn=0&pi=0&gsm=0&objurl=https%3A%2F%2Fss0.baidu.com%2F-Po3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F0e2442a7d933c895ca486665d51373f0820200fd.jpg&rpstart=0&rpnum=0&adpicid=0&nojc=undefined";//二维码内容 int width = 888;//二维码宽度 int height = 888;//二维码高度 int margin = 3;//二维码边距 String filePath = "D:\\";//二维码保存路径 String fileName = "高清壁纸,你值得拥有!";//二维码文件名 String formatName = "jpg";//二维码图片格式 try { // 生成二维码 if(createQRCode(content, width, height,margin,filePath, fileName, formatName)) { System.out.println("Yes"); return; } System.out.println("No"); } catch (Exception e) { e.printStackTrace(); } } }
可以自己更改主函数的链接,可以改成网页链接或是网图都可以:
String content = "https://image.baidu.com/search/detail?ct=503316480&z=&tn=baiduimagedetail&ipn=d&word=%E5%A3%81%E7%BA%B8&step_word=&ie=utf-8&in=&cl=2&lm=-1&st=-1&hd=undefined&latest=undefined©right=undefined&cs=2544377084,275372641&os=3052229399,834441112&simid=3533086814,586585425&pn=59&rn=1&di=72930&ln=3476&fr=&fmq=1526269427171_R&fm=&ic=0&s=undefined&se=&sme=&tab=0&width=&height=&face=undefined&is=0,0&istype=2&ist=&jit=&bdtype=0&spn=0&pi=0&gsm=0&objurl=https%3A%2F%2Fss0.baidu.com%2F-Po3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F0e2442a7d933c895ca486665d51373f0820200fd.jpg&rpstart=0&rpnum=0&adpicid=0&nojc=undefined";//二维码内容
也可以改二维码文件的位置这里我设置的是D盘根目录:
String filePath = "D:\\";//二维码保存路径
还可以改二维码的名字与图片格式:
String fileName = "高清壁纸,你值得拥有!";//二维码文件名 String formatName = "jpg";//二维码图片格式
有些同学这时候会出现错误,这是因为下载的包没有加载到文件中,这时候刷新就可以。
按照图中的步骤,双击clean和compile就可以了。
右键 ---- Run 运行,之后就可以在D盘根目录下看到生成的二维码了。
生成的二维码如图:
之后就可以用手机扫描二维码,可以看到链接的内容。学会了就去试试吧
这篇关于使用IDEA创建一个通过url链接生成二维码的java程序|自动生成二维码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02Java管理系统项目实战入门教程
- 2024-11-02Java监控系统项目实战教程
- 2024-11-02Java就业项目项目实战:从入门到初级工程师的必备技能
- 2024-11-02Java全端项目实战入门教程
- 2024-11-02Java全栈项目实战:从入门到初级应用
- 2024-11-02Java日志系统项目实战:初学者完全指南
- 2024-11-02Java微服务系统项目实战入门教程
- 2024-11-02Java微服务项目实战:新手入门指南
- 2024-11-02Java项目实战:新手入门教程
- 2024-11-02Java小程序项目实战:从入门到简单应用