ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java通过QRCode生成二维码(1),tomcat原理详解

2021-09-05 16:06:49  阅读:237  来源: 互联网

标签:Java String tomcat int bufferedImage https QRCode public


graphics.setBackground(Color.WHITE);//将画板的背景色设置为白色

graphics.clearRect(0, 0, imgSize, imgSize);//初始化

graphics.setColor(Color.BLACK);//设置画板上图像的颜色



int pixoff = 2;

for(int j = 0;j<codeOuts.length;j++){

    for(int i = 0;i<codeOuts.length;i++){

        if (codeOuts[j][i]) {

            graphics.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);

        }

    }

}

//增加logo

Image logo = ImageIO.read(new File("H:\\CSDN\\哪吒.jpg"));

int maxWidth = bufferedImage.getWidth();

int maxHeight = bufferedImage.getHeight();

graphics.drawImage(logo, imgSize/5*2, imgSize/5*2, maxWidth/5, maxHeight/5, null);

graphics.dispose();//释放空间

bufferedImage.flush();//清理

return bufferedImage;

}




> 注:敲代码最重要的是思路,由ImageIO.write(bufferedImage, "jpg", new File("H:/qrcode.jpg"));入手,依次构建参数,因为RenderedImage是一个接口,因此要找到它的实现类 BufferedImage,



### 2、解析二维码



//解密

public static String decoderQRCode(String imgPath) throws IOException {

//硬盘中图片加载入内存

BufferedImage bufferedImage = ImageIO.read(new File(imgPath));

//解密

QRCodeDecoder qrCodeDecoder = new QRCodeDecoder();

QRCodeImage qrCodeImage = new QRCodeImageImpl(bufferedImage);

byte[] decode = qrCodeDecoder.decode(qrCodeImage);

return new String(decode, "gbk");

}




 ![](https://www.icode9.com/i/ll/?i=20210312215500904.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1b3J1aV9qYXZh,size_16,color_FFFFFF,t_70)



package com.guor.qrcode;

import jp.sourceforge.qrcode.data.QRCodeImage;

import java.awt.image.BufferedImage;

public class QRCodeImageImpl implements QRCodeImage {

BufferedImage bufferedImage;//内存中的二维码

public QRCodeImageImpl(BufferedImage bufferedImage){

    this.bufferedImage = bufferedImage;

}



@Override

public int getWidth() {

    return bufferedImage.getHeight();

}



@Override

public int getHeight() {

    return bufferedImage.getHeight();

}



//像素

@Override

public int getPixel(int x, int y) {

    return bufferedImage.getRGB(x, y);

}

}




### 3、测试类



package com.guor.qrcode;

public class QrcodeTest {

public static void main(String[] args) throws Exception {

    String content = "https://blog.csdn.net/guorui_java/article/details/112391105";//内容信息

    String path = "H:/qrcode.jpg";

    //加密:文字信息 -> 二维码

    QRCodeUtil.encoderQRCode(content, path, "png", 20);

    //解密

    String decoderQRCode = QRCodeUtil.decoderQRCode(path);

    System.out.println(decoderQRCode);

}

}




### 4、生成的二维码



![](https://www.icode9.com/i/ll/?i=20210312215635630.jpg)



一扫出神奇,还真的跳转到了我的[Java知识体系总结(2021版)]( )博客



解析的文字:



![](https://www.icode9.com/i/ll/?i=20210312215715724.png)




### 最后

**对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。**

**整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。**

**再分享一波我的Java面试真题+视频学习详解+技能进阶书籍**

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**


**整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。**

**再分享一波我的Java面试真题+视频学习详解+技能进阶书籍**

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

![美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)](https://www.icode9.com/i/ll/?i=img_convert/6ef36db3dcf746d33f217367af5f9a5a.png)

标签:Java,String,tomcat,int,bufferedImage,https,QRCode,public
来源: https://blog.csdn.net/m0_60721967/article/details/120116177

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有