新闻中心

EEPW首页 > 消费电子 > 设计应用 > 二维码 QR码编码原理详解

二维码 QR码编码原理详解

作者:时间:2013-01-01来源:网络收藏

5.构造矩阵:将探测图形、分隔符、定位图形、校正图形和码字模块放入矩阵中。

11.jpg

把上面的完整序列填充到相应规格的码矩阵的区域中

6. 掩摸:将掩摸图形用于符号的区域,使得码图形中的深色和浅色(黑色和白色)区域能够比率最优的分布。

一个算法,不研究了,有兴趣的同学可以继续。

7. 格式和版本信息:生成格式和版本信息放入相应区域内。

版本7-40都包含了版本信息,没有版本信息的全为0。码上两个位置包含了版本信息,它们是冗余的。

版本信息共18位,6X3的矩阵,其中6位时数据为,如版本号8,数据位的信息时 001000,后面的12位是纠错位。

至此,二维码的流程基本完成了,下面就来实践一下吧,当然不用自己再去编写上面的算法了,使用三方包zxing 就可以了。


public static void encode(String content, String format, String filePath) {
try {
Hashtable hints = new Hashtable();//设置编码类型
hints.put(EncodeHintType.CHARACTER_SET, DEFAULT_ENCODING);
//编码
BitMatrix bitMatrix = new CodeWriter().encode(content,
BarcodeFormat._CODE, DEFAULT_IMAGE_WIDTH,
DEFAULT_IMAGE_HEIGHT,hints);
//输出到文件,也可以输出到流
File file = new File(filePath);
MatrixToImageWriter.writeToFile(bitMatrix, format, file);

} catch (IOException e) {
e.printStackTrace();
} catch (WriterException e1) {
e1.printStackTrace();
}
}

解码:

BufferedImage image = ImageIO.read(file);//读取文件
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(
source));
//解码
Result result = new MultiFormatReader().decode(bitmap);
String resultStr = result.getText();
System.out.println(resultStr);


上一页 1 2 下一页

关键词: 详解 原理 编码 QR 二维

评论


相关推荐

技术专区

关闭