Los ejemplos en este artículo comparten con usted el código específico para el código de verificación de la carta de generación de Java para su referencia. El contenido específico es el siguiente
import java.awt.basicStroke; import java.awt.color; import java.awt.font; import java.awt.graphics2d; import java.awt.image.bufferedImage; import java.io.ioexception; import java.io.outputstream; import java.utilil.utilome; import javaax. VerifyCode {// Ancho de imagen y altura privada int w = 70; privado int h = 35; privado aleatorio r = new Random (); cadena privada [] fontnames = {"Font de canción", "Font china Kai", "Fuente en negrita", "Microsoft Elegant Black", "Kai Font_GB2312"}; Códigos de cadena privada = "234567890qwertyuipasdfghjkzxcvbnmqwertyuipasdfghjkzxcvbnm"; color privado bgcolor = nuevo color (255,255,255); texto de cadena privada; // generar colores aleatorios de color privado randomColor () {int rojo = R.NextInt (150); int verde = R.NextInt (150); int blue = R.NextInt (150); devolver nuevo color (rojo, verde, azul); } // Generar fuentes aleatorios de fuente privada randomfont () {int index = r.nextint (fontnames.length); Cadena fontname = fontnames [index]; int style = R.NextInt (4); // 0 Ninguno 1 Bold 2 Italico 3 Bold + Oblique int Size = R.NextInt (5) +24; // Generar un tamaño de fuente aleatoria 24 ~ 28 devuelve nueva fuente (nombre de fuente, estilo, tamaño); } // Línea de interferencia Private Void Drawline (Imagen de BufferedImage) {// Generar 4 líneas de interferencia int num = 4; Graphics2d Bi = (Graphics2d) Image.getGraphics (); for (int i = 0; i <num; i ++) {int x1 = r.nextint (w); int x2 = R.NextInt (W); int y1 = R.NextInt (H); int y2 = R.NextInt (H); bi.setstroke (nuevo básico (1.5f)); Bi.SetColor (Color.Blue); // Interference Line Color Bi.Drawline (x1, y1, x2, y2); }} // generación aleatoria de un personaje privado char randomChar () {int index = r.nextint (codes.length ()); devolver CODES.CHARAT (índice); } // Image Buffer BufferedImage createImage () {BufferedImage Image = new BufferedImage (W, H, BufferedImage.Type_int_Bgr); Graphics2d Bi = (Graphics2d) Image.getGraphics (); bi.setColor (this.bgcolor); bi.fillrect (0, 0, w, h); imagen de retorno; } // Generar imagen public BufferedImage getImage () {BufferedImage image = createImage (); Graphics2d Bi = (Graphics2d) Image.getGraphics (); StringBuilder sb = new StringBuilder (); for (int i = 0; i <4; i ++) {String String = RandomChar ()+""; sb.append (cadena); // Cada personaje representa el ancho de 1/4 de la imagen flotante x = i*1.0f*w/4; // formato de fuente aleatoria bi.setFont (randomFont ()); bi.setColor (randomColor ()); // Escribe los caracteres en el lugar apropiado de la imagen (H-6 significa que la imagen está a 6 alturas desde la parte inferior) BI.Drawstring (String, X, H-6); } this.text = sb.ToString (); línea de dibujo (imagen); imagen de retorno; } // Devuelve la cadena pública obtenida getText () {return text; } // Escribe la imagen en la ubicación especificada Public static void salida (imagen de BufferedImage, outputStream out) {try {imageIO.write (imagen, "jpg", out); } catch (ioException e) {E.PrintStackTrace (); }}}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.