introducir
El paquete zxing de Goole se usa principalmente. El siguiente es un código de muestra, que es muy conveniente para que todos entiendan y aprendan. El código pertenece al marco preliminar y tiene funciones, y debe mejorarse y optimizarse de acuerdo con el uso real.
Paso 1: Maven Import ZXing
<Spendency> <MoupRiD> com.google.zxing </groupid> <artifactid> core </artifactid> <versión> 3.2.1 </versión> </pendency>
Paso 2: Comience a generar el código QR:
Private static final int Black = 0xff000000; private static final int white = 0xffffffff;/*** Guardar el código QR generado en la imagen* @param matrix QR Code Clase en el paquete ZXing* @@return*/public static BufferedImage TobufferedImage (BitMatrix Matrix) {int width = matrix.getwidth (); int hight = matrix.getheight (); Bufferedimage imagen = nueva bufferedimage (ancho, altura, bufferedimage.type_int_rgb); for (int x = 0; x <width; x ++) {for (int y = 0; y <height; y ++) {image.setrgb (x, y, matrix.get (x, y)? negro: blanco); }} imagen de retorno;}/*** Genere el código QR y escriba en el archivo* @param Content Scan el contenido del código QR* @param format format format jpg* @param archivo archivo* @throws excepción*/public static void writeToFile (string content, format de cadena, archivo de archivo) Excepción {multiformatatwritriter multiformatatwriter = new MultiformAtWrite (); @SupessWarnings ("RawTypes") mapa sugerencias = new HashMap (); // Establecer UTF-8 para evitar sugerencias chinas confusas. // Establezca el tamaño del área blanca alrededor del código QR sugerencias. // Establezca la tolerancia de falla del código QR INSTINSS.put (codeDinttype.error_correction, ErrgeCorrectionLevel.h); // Dibuja el código QR bitMatrix bitMatrix = multiformatwriter.encode (content, barcodeformat.qr_code, ancho, altura, sugerencias); Bufferedimage imagen = tobufferedImage (bitmatrix); if (! imageio.write (imagen, formato, archivo)) {throw new ioException ("no podría escribir una imagen de formato" + formato + "a" + archivo); }}Paso 3: Escriba el texto en la imagen del código QR:
/** * Add text to the QR code image* @param pressText text* @param qrFile QR code file* @param fontStyle * @param color * @param fontSize */public static void pressText(String pressText, File qrFile, int fontStyle, Color color, int fontSize) throws Exception { pressText = new String(pressText.getBytes(), "UTF-8"); Imagen src = imageIO.Read (qrfile); int ImageW = src.getWidth (nulo); int ImageH = src.getheight (nulo); BufferedImage image = new BufferedImage (ImageW, ImageH, BufferedImage.Type_int_Rgb); Gráficos g = image.createGraphics (); G.DrawImage (Src, 0, 0, ImageW, ImageH, NULL); // establecer el color del pincel g.setColor (color); // establecer la fuente de fuente = nueva fuente ("安安", FontStyle, FontSize); FontMetrics Metrics = G.GetFontMetrics (fuente); // Las coordenadas del texto en la imagen se establecen en el medio aquí int startx = (width - metrics.stringwidth (pressText)) /2; int starty = altura/2; G.SetFont (fuente); G.DrawString (PressText, StartX, Starty); G.Dispose (); FileOutputStream out = new FileOutputStream (QRFile); Imageio.write (imagen, "jpeg", out); out.close (); System.out.println ("Image Press Success");}Paso 4: Prueba en el método principal, se generará un código QR con texto en el medio
public static void main (string [] args) lanza la excepción {archivo qrcfile = nuevo archivo ("/users/deweixu/", "google.jpg"); WRITETOFILE ("www.google.com.hk", "jpg", qrcfile); PressText ("Google", QRCFile, 5, Color.Red, 32);}Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo sea de ayuda para su estudio o trabajo. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse.