如何生成二维码代码详解
来源:互联网 发布:小米手环无法同步数据 编辑:程序博客网 时间:2024/06/14 03:27
如何生成二维码代码详解,具体实现可以查看原文http://my.oschina.net/mkh/blog/151633
1. [代码][Java]代码 跳至 [1] [全屏预览]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import
java.awt.image.BufferedImage;
import
java.io.File;
import
java.io.IOException;
import
java.util.Hashtable;
import
java.util.Scanner;
import
javax.imageio.ImageIO;
import
com.google.zxing.BarcodeFormat;
import
com.google.zxing.BinaryBitmap;
import
com.google.zxing.DecodeHintType;
import
com.google.zxing.LuminanceSource;
import
com.google.zxing.MultiFormatReader;
import
com.google.zxing.MultiFormatWriter;
import
com.google.zxing.Reader;
import
com.google.zxing.ReaderException;
import
com.google.zxing.Result;
import
com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import
com.google.zxing.client.j2se.MatrixToImageWriter;
import
com.google.zxing.common.BitMatrix;
import
com.google.zxing.common.HybridBinarizer;
public
class
TestEnDeCode {
/**
*
*/
public
TestEnDeCode() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public
static
void
main(String[] args) {
TestEnDeCode t=
new
TestEnDeCode();
Scanner in =
new
Scanner(System.in);
System.out.println(
"编码内容:"
);
String str = in.next();
// String str = "http://www.baidu.com";
String path =
"D:/Qr_pics/test7.png"
;
t.encode(str, path);
t.decode(path);
}
/*
* 编码:
* 1 将内容转换成二维矩阵
* 2 将该二维矩阵转换成图片
* */
public
void
encode(String str, String path) {
try
{
// String str = "http://www.baidu.com百度看看";// 二维码内容
// String path = "D:/Qr_pics/test7.png"; //二维码图片生成 路径及名称
BitMatrix byteMatrix;
byteMatrix =
new
MultiFormatWriter().encode(
new
String(str.getBytes(
"UTF-8"
),
"UTF-8"
), BarcodeFormat.QR_CODE,
800
,
800
);
//将文字转换成二维矩阵,并设置矩阵大小,这里的矩阵大小就是后面生成的图片像素大小
File file =
new
File(path);
//新建矩阵文件
MatrixToImageWriter.writeToFile(byteMatrix,
"gif"
, file);
//将矩阵文件转换成图片文件
}
catch
(Exception e) {
e.printStackTrace();
}
}
/*
* 解码:
* 1 将图片反解码为二维矩阵
* 2 将该二维矩阵解码为内容
* */
public
void
decode(String imgPath) {
try
{
Reader reader =
new
MultiFormatReader();
// String imgPath = "D:/Qr_pics/test7.png";//获取即将被解码图片的路径
File file =
new
File(imgPath);
//获取该图片文件
BufferedImage image;
try
{
image = ImageIO.read(file);
if
(image ==
null
) {
System.out.println(
"Could not decode image"
);
}
LuminanceSource source =
new
BufferedImageLuminanceSource(image);
BinaryBitmap bitmap =
new
BinaryBitmap(
new
HybridBinarizer(source));
Result result;
Hashtable hints =
new
Hashtable();
//将图片反解码为二维矩阵
hints.put(DecodeHintType.CHARACTER_SET,
"UTF-8"
);
result =
new
MultiFormatReader().decode(bitmap, hints);
//将该二维矩阵解码成内容
String resultStr = result.getText();
System.out.println(
"\n解码结果:\n"
+resultStr);
}
catch
(IOException ioe) {
System.out.println(ioe.toString());
}
catch
(ReaderException re) {
System.out.println(re.toString());
}
}
catch
(Exception ex) {
System.out.println(ex.toString());
}
}
}
0 0
- 如何生成二维码代码详解
- 如何生成二维码过程详解
- 生成二维码代码
- JAVA 生成二维码 代码
- 二维码生成代码
- 生成二维码代码
- php --- 二维码生成代码
- java代码生成二维码
- 生成二维码效果代码
- 生成二维码代码
- java代码生成二维码
- java代码生成二维码
- php生成二维码代码
- 二维码java生成代码
- C#二维码生成代码
- 二维码代码生成
- java代码生成二维码
- 二维码生成代码
- Activity的taskAffinity属性
- ThreadLocal初识
- STM32 CAN 总线 自我学习总结
- 照片尺寸对照单Microsoft Word 文档
- 第三话-单一职责原则
- 如何生成二维码代码详解
- java web项目中集成Jetty作为web容器
- java基于mahout内存应用关联规则推荐算法fpgrowth
- android自定义圆环控件 滑动选择百分比
- 遍历map
- AFNetworking2.0源码解析<二>
- layoutSubviews总结
- Linux解决问题篇——ftp上传文件(使用put)时,permission denied,下载文件(使用get)时,failed to open file
- <link>标签的rel属性详解