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(); } } }
+ GNU FDL
Cap comentari:
Publica un comentari a l'entrada