以下是详细步骤:
1、创建MatrixToImageWriter类
import com.google.zxing.common.BitMatriximport javax.imageio.ImageIO
import java.io.File
import java.io.OutputStream
import java.io.IOException
import java.awt.image.BufferedImage
public final class MatrixToImageWriter {
private static final int BLACK = 0xFF000000
private static final int WHITE = 0xFFFFFFFF
private MatrixToImageWriter() {}
public static BufferedImage toBufferedImage(BitMatrix matrix) {
int width = matrix.getWidth()
int height = matrix.getHeight()
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB)
for (int x = 0 x < width x++) {
for (int y = 0 y < height y++) {
image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE)
}
}
return image
}
public static void writeToFile(BitMatrix matrix, String format, File file)
throws IOException {
BufferedImage image = toBufferedImage(matrix)
if (!ImageIO.write(image, format, file)) {
throw new IOException("Could not write an image of format " + format + " to " + file)
}
}
public static void writeToStream(BitMatrix matrix, String format, OutputStream stream)
throws IOException {
BufferedImage image = toBufferedImage(matrix)
if (!ImageIO.write(image, format, stream)) {
throw new IOException("Could not write an image of format " + format)
}
}
}
2、生成二维码并添加信息
import java.io.Fileimport java.util.Hashtable
import com.google.zxing.BarcodeFormat
import com.google.zxing.EncodeHintType
import com.google.zxing.MultiFormatWriter
import com.google.zxing.WriterException
import com.google.zxing.common.BitMatrix
public class Test {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String text = "http://www.baidu.com"
int width = 300
int height = 300
//二维码的图片格式
String format = "gif"
Hashtable hints = new Hashtable()
//内容所使用编码
hints.put(EncodeHintType.CHARACTER_SET, "utf-8")
BitMatrix bitMatrix = new MultiFormatWriter().encode(text,
BarcodeFormat.QR_CODE, width, height, hints)
//生成二维码
File outputFile = new File("d:"+File.separator+"new.gif")
MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile)
}
}
二维码可以存储各种信息,主要包括:网址、名片、文本信息、特定代码。
根据信息的应用方式,又可以分为:
1、线上应用
如网址和特定代码,更多的是线上应用。
2、离线应用
如文本信息和名片,更多的是线下应用。
扩展资料
二维码其资讯的储存是以浅色与深色方格的排列组合,以二位元码(Binary-code)方式来编码,故电脑可直接读取其资料内容,而不需要如传统一维条码的符号对映表。深色代表“1”,浅色代表“0”,再利用成串(String)的浅色与深色方格来描述特殊的字元资讯。
这些字串再列成一个完成的矩阵式码,形成DataMatrix二维条码码,再以不同的印表机印在不同材质表面上。由於Data Matrix二维条码只需要读取资料的20%即可精确辨读,因此很适合应用在条码容易受损的场所,例如印在暴露於高热、化学清洁剂、机械剥蚀等特殊环境的零件上。
参考资料来源:百度百科-二维码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)