Java二维码的解码和编码详解编程语言

需要用到的Jar包:ZXing-core.jar和ZXing-javase.jar。

  
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.client.j2se.MatrixToImageWriter; 
import com.google.zxing.common.BitMatrix; 
   
//编码 
public class QREncoder { 
   
    public static void main(String[] args) throws Exception { 
        String content = "hello world"; 
        String encoding = "utf-8"; 
        int width = 150; 
        int height = 150; 
        String format = "jpg"; 
        File imagePath = new File("d:/test.jpg"); 
           
        com.google.zxing.Writer writer = new MultiFormatWriter(); 
        Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(2); 
        hints.put(EncodeHintType.CHARACTER_SET, encoding); 
        BitMatrix matrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints); 
        MatrixToImageWriter.writeToFile(matrix, format, imagePath); 
    } 
   
} 
   
   
   
import java.io.File; 
import java.util.Hashtable; 
   
import javax.imageio.ImageIO; 
   
import com.google.zxing.Binarizer; 
import com.google.zxing.BinaryBitmap; 
import com.google.zxing.DecodeHintType; 
import com.google.zxing.LuminanceSource; 
import com.google.zxing.MultiFormatReader; 
import com.google.zxing.Reader; 
import com.google.zxing.Result; 
import com.google.zxing.client.j2se.BufferedImageLuminanceSource; 
import com.google.zxing.common.GlobalHistogramBinarizer; 
   
//解码 
public class QRDecoder { 
   
    public static void main(String[] args) throws Exception { 
        File imagePath = new File("d:/test.jpg"); 
        String encoding = "utf-8"; 
           
        Reader reader = new MultiFormatReader(); 
        LuminanceSource ls = new BufferedImageLuminanceSource(ImageIO.read(imagePath)); 
        Binarizer b = new GlobalHistogramBinarizer(ls); 
        Hashtable<DecodeHintType, String> hint1 = new Hashtable<DecodeHintType, String>(2); 
        hint1.put(DecodeHintType.CHARACTER_SET, encoding); 
        Result r = reader.decode(new BinaryBitmap(b), hint1); 
        System.out.println(r.getText()); 
    } 
   
} 
  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10154.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论