Skip to content

ALI1416/qrcode-encoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QR Code Encoder For Java 二维码生成器Java版

License Java Support Maven Central Tag Repo Size

Java CI Coverage Reliability Rating Maintainability Rating Security Rating

简介

本项目迁移自ALI1416/QRCodeEncoder.Net,只编写了生成器部分,并对处理逻辑进行了大量优化,构建后qrcode-encoder.jar文件仅20kb

注意:本项目不提供二维码绘制方法,如需绘制请看使用示例

其他语言项目

依赖导入

<dependency>
    <groupId>cn.404z</groupId>
    <artifactId>qrcode-encoder</artifactId>
    <version>1.2.0</version>
</dependency>

方法和参数

二维码 QRCode

参数名 中文名 类型 默认值
content 内容 String (无)
level 纠错等级 Integer 0
mode 编码模式 Integer (自动探测)
versionNumber 版本号 Integer (最小版本)

版本 Version

参数名 中文名 类型 默认值
length 内容字节数 int (无)
level 纠错等级 int (无)
mode 编码模式 int (无)
versionNumber 版本号 Integer (最小版本)

掩模模板 MaskPattern

参数名 中文名 类型
data 数据 boolean[]
version 版本 Version
level 纠错等级 int

纠错等级 level

等级 纠错率
0 L 7%
1 M 15%
2 Q 25%
3 H 30%

编码模式 mode

模式 备注
0 NUMERIC 数字0-9
1 ALPHANUMERIC 数字0-9、大写字母A-Z、符号(空格)$%*+-./:
2 BYTE(ISO-8859-1) 兼容ASCII
3 BYTE(UTF-8)

版本号 versionNumber

取值范围:[1,40]

使用示例

QRCodeTest.java

String content = "1234😀";
int level = 0;
int mode = 3;
int versionNumber = 1;
String path = "E:/1.png";
QRCode qrCode = new QRCode(content, level, mode, versionNumber);
BufferedImage image = ImageUtils.qrMatrix2Image(qrCode.Matrix, 10);
ImageUtils.saveImage(image, path);

ImageUtils.java

public static BufferedImage qrMatrix2Image(boolean[][] bytes, int pixelSize) {
    int length = bytes.length;
    int size = (length + 2) * pixelSize;
    BufferedImage image = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB);
    Graphics2D graphics = image.createGraphics();
    graphics.setColor(Color.BLACK);
    for (int x = 0; x < length; x++) {
        for (int y = 0; y < length; y++) {
            if (bytes[x][y]) {
                graphics.fillRect((x + 1) * pixelSize, (y + 1) * pixelSize, pixelSize, pixelSize);
            }
        }
    }
    graphics.dispose();
    return image;
}

public static void saveImage(BufferedImage image, String path) throws IOException {
    ImageIO.write(image, "png", new File(path));
}

更多请见测试

参考

更新日志

点击查看

关于

About

About

QR Code Encoder For Java 二维码生成器Java版

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages