# quick_response_code **Repository Path**: _seraph/quick_response_code ## Basic Information - **Project Name**: quick_response_code - **Description**: 对 Google 的 ZXing 中的二维码进行简单封装 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-09-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 对`com.google.zxing`的`QRCode`进行封装 ### 主要封装内容 - 通过`QRCodeBuilder`配置`QRCode` - 通过`QRCode`实现将二维码写到文件或者输出流中 - 借助`QRCodeDecoder`对二维码文件进行解析 ### 简单使用 #### 指定二维码内容 ```java QRCode qrCode = new QRCodeBuilder() .content("https://github.com/Reka-Downey/qrcode") .create(); qrCode.writeTo(new File("F:/qrCode.png")); ``` 生成的二维码为:
![qrCode.png](https://ooo.0o0.ooo/2016/08/22/57bbc8d8e5ce2.png)
#### 指定二维码内容和图片`logo`文件 ```java QRCode qrCode = new QRCodeBuilder() .size(400) .withImageType(ImageType.JPEG) .content("https://github.com/Reka-Downey/qrcode") .logo(new File("F:/logo.jpg")) .logoRectangle() .logoLocation(LogoLocation.RIGHT_BOTTOM) .create(); qrCode.writeTo(new File("F:/qrCode.jpg")); ``` `logo`文件:
![logo.jpg](https://ooo.0o0.ooo/2016/08/22/57bbc8d8e7deb.jpg)
生成的二维码为:
![qrCode.jpg](https://ooo.0o0.ooo/2016/08/22/57bbc8d909094.jpg)
#### 由文本生成`logo`,注意此时不可以添加图片`logo`,否则默认将优先使用图片`logo` ```java LabelConfig labelConfig = new LabelConfig.Builder() .font(new Font("Lucida Sans Typewriter", Font.PLAIN, 40)) .create(); QRCode qrCode = new QRCodeBuilder() .size(400) .withImageType(ImageType.GIF) .content("https://github.com/Reka-Downey/qrcode") .labelAsLogo("Reka Downey") .labelLogoConfig(labelConfig) .logoRectangle() .logoLocation(LogoLocation.RIGHT_CENTER) .create(); qrCode.writeTo(new File("F:/qrCode.gif")); ``` 生成的二维码为
![qrCode.gif](https://ooo.0o0.ooo/2016/08/22/57bbc6b5d9139.gif)
#### 由二维码文件解析内容 ```java Result result = QRCodeDecoder.decode(new File("F:/qrCode.gif")); System.out.println(result.getText()); ``` 此时解析出来的内容为:`https://github.com/Reka-Downey/qrcode` ### 存在问题 + `LogoLocation`定位时受`ImageMargin`(二维码留白区域)等因素影响导致不准确; + 当需要对`logo`进行收缩处理时,收缩操作有问题