java 生成二维码后如何给该二维码添加信息

java 生成二维码后如何给该二维码添加信息,第1张

java可使用zxing生成二维码并为其添加信息

以下是详细步骤:

1、创建MatrixToImageWriter类

import com.google.zxing.common.BitMatrix   

 import 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.File  

import 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%即可精确辨读,因此很适合应用在条码容易受损的场所,例如印在暴露於高热、化学清洁剂、机械剥蚀等特殊环境的零件上。

参考资料来源:百度百科-二维码


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7910957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存