El següent tros de codi mostra una forma de generar una imatge d'un codi QR amb Java utilitzant iText. Se li passa la URL de la imatge i la mida en píxels del costat (és quadrada), i genera una imatge PNG quin nom és el temps en què es genera, en mil·lisegons. Perquè compili heu de tenir el fitxer JAR de l'iText al classpath.
import java.awt.Color;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import javax.imageio.ImageIO;
import com.itextpdf.text.pdf.BarcodeQRCode;
public class qrimg {
/**
* @param args
*/
public static void main(String[] args) {
try {
int iMida = Integer.parseInt(args[1]);
BarcodeQRCode aQRCode = new BarcodeQRCode(args[0], iMida, iMida, null);
// Gràcies a http://stackoverflow.com/questions/5749860/get-bytes-from-itexts-barcode39-image
Image aImg = aQRCode.createAwtImage(Color.BLACK, Color.WHITE);
BufferedImage aBuffImg = new BufferedImage(aImg.getWidth(null), aImg.getHeight(null), BufferedImage.TYPE_INT_RGB);
aBuffImg.getGraphics().drawImage(aImg, 0, 0, null);
ByteArrayOutputStream aOut = new ByteArrayOutputStream();
ImageIO.write(aBuffImg, "png", aOut);
aOut.flush();
Calendar aCal = Calendar.getInstance();
FileOutputStream aFOut = new FileOutputStream(String.valueOf(aCal.getTimeInMillis())+".png");
aFOut.write(aOut.toByteArray());
aFOut.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Cap comentari:
Publica un comentari a l'entrada