Introdução 1zxing
Geração e análise de código bidimensional. Existem muitos caminhos. Escolhemos usar zxing. ZXing é uma biblioteca de processamento de imagem de código de barras 1D / 2D de código aberto em vários formatos implementados em Java, que contém portas para se conectar a outras linguagens. Zxing pode usar a câmera embutida do telefone móvel para ler e decodificar códigos de barras.
Download 2zxing
Caminho de download do jar:
https://codeload.github.com/zxing/zxing/zip/master
3 Aplicação no projeto
3.1 Primeiro introduza o jar zxing no projeto
3.2 Crie uma nova classe TestZXing e escreva um código QR
teste de pacote;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.HashMap;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class TestZXing {
@SuppressWarnings ({"rawtypes", "unchecked"})
public static void main (String [] args) {
largura interna = 300;
altura interna = 300;
Formato de string = "png";
Conteúdo da string = "www.baidu.com";
Mapa HashMap = novo HashMap ();
map.put (EncodeHintType.CHARACTER_SET, "utf-8");
map.put (EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
map.put (EncodeHintType.MARGIN, 0);
experimentar {
BitMatrix bm = novo MultiFormatWriter (). Encode (conteúdo, BarcodeFormat.QR_CODE, largura, altura);
Arquivo de caminho = novo arquivo ("D: /img.png"). ToPath ();
MatrixToImageWriter.writeToPath (bm, formato, arquivo);
} catch (WriterException e) {
e.printStackTrace ();
} catch (IOException e) {
e.printStackTrace ();
}
}
}
3.3 Crie a classe TestRead, escreva e analise o código QR, execute o código e imprima os resultados do teste
teste de pacote;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import javax.imageio.ImageIO;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
public class TestRead {
@SuppressWarnings ({"unchecked", "rawtypes"})
public static void main (String [] args) {
experimentar {
Leitor MultiFormatReader = novo MultiFormatReader ();
Arquivo f = novo arquivo ("D: /img.png");
BufferedImage image = ImageIO.read (f);
BinaryBitmap bb = novo BinaryBitmap (novo HybridBinarizer (novo BufferedImageLuminanceSource (imagem)));
Mapa HashMap = novo HashMap ();
map.put (EncodeHintType.CHARACTER_SET, "utf-8");
Resultado resultado = leitor.decode (bb, mapa);
System.out.println ("Resultado da análise:" + result.toString ());
System.out.println ("Tipo de formato de código QR:" + result.getBarcodeFormat ());
System.out.println ("Conteúdo de texto do código QR:" + result.getText ());
} catch (NotFoundException e) {
e.printStackTrace ();
} catch (IOException e) {
e.printStackTrace ();
}
}
}