Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa
 

Códigos de barras e seus derivados, como o QR-Code, são muito úteis em diversos tipos de projetos, portanto a ideia é mostrar um pequeno exemplo de como gera-los em uma aplicação desenvolvida em Java.

 

 

Para isso é preciso ter a biblioteca zxing adicionada ao seu projeto, você pode baixa-la aqui e tem uma cópia aqui.

 

No caso do código abaixo é gerado um QR-Code, mas com simples alterações, como por exemplo, no comando BarcodeFormat é possível gerar quase uma enorme variedade de códigos gráficos.

 

O resultado desse código é um arquivo PNG com o QR-Code no local especificado pelo atributo caminho.

 

{code}

import com.google.zxing.BarcodeFormat;

import com.google.zxing.EncodeHintType;

import com.google.zxing.WriterException;

import com.google.zxing.common.BitMatrix;

import com.google.zxing.qrcode.QRCodeWriter;

import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.util.Hashtable;

import javax.imageio.ImageIO;

 

/**

*

* @author Fernando Bryan Frizzarin

*/

public class Qrcode2 {

 

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

String textodoCodigo = "http://www.seucurso.com.br";

String caminho = "C:/Users/d1396/Desktop/seucurso.png";

int tam = 125;

String tipoArquivo = "png";

File myFile = new File(caminho);

try {

Hashtable hintMap = new Hashtable();

hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);

QRCodeWriter qrCodeWriter = new QRCodeWriter();

BitMatrix byteMatrix = qrCodeWriter.encode(textodoCodigo,BarcodeFormat.QR_CODE, tam, tam, hintMap);

int tamanho = byteMatrix.getWidth();

BufferedImage image = new BufferedImage(tamanho, tamanho,

BufferedImage.TYPE_INT_RGB);

image.createGraphics();

 

Graphics2D graphics = (Graphics2D) image.getGraphics();

graphics.setColor(Color.WHITE);

graphics.fillRect(0, 0, tamanho, tamanho);

graphics.setColor(Color.BLACK);

 

for (int i = 0; i < tamanho; i++) {

for (int j = 0; j < tamanho; j++) {

if (byteMatrix.get(i, j)) {

graphics.fillRect(i, j, 1, 1);

}

}

}

ImageIO.write(image, tipoArquivo, myFile);

} catch (WriterException | IOException e) {

e.printStackTrace();

}

System.out.println("\nQR-Code gerado com sucesso!\n\n");

}

 

}

{/code}

 

O arquivo gerado: seucurso.png