Recientemente ha habido muchos artículos sobre los códigos de verificación de imágenes Java, ayudando a todos a dominar la tecnología de generación de código de verificación Java. La siguiente es una forma más sencilla de generar códigos de verificación de imagen Java para su referencia.
Hoy en día, todas las industrias considerarán el registro de la máquina al personalizar los sistemas. La forma más efectiva ahora es ingresar a la verificación. Hay muchas formas de verificar ahora:
1. La verificación del problema es en realidad también la verificación de imágenes. Genere una pregunta en la imagen y luego ingrese el cuadro para ingresar la respuesta.
2. Verificación de imágenes, ingrese la información de texto que se muestra en la imagen.
3. La verificación de SMS es bastante complicada y a los usuarios no les gusta mucho.
4. También está el último método de verificación de Baidu. El texto se genera en la imagen, y un cuadro de clic de texto aparece para seleccionar el texto que ve en la imagen de verificación.
Ahora compartimos el código de Java para generar código de verificación, que es un código básico. Se puede usar directamente en el aprendizaje. Si necesita una verificación más compleja, puede agregar una verificación lógica usted mismo.
@ControllerPublic de clase imgverifyCode extiende httpservlet { / ** * * / private static final long SerialVersionUid = 1l; /*** Ancho de la imagen del código de verificación. */ private int width = 70; /*** La altura de la imagen del código de verificación. */ private int altura = 30; / *** Número de caracteres de código de verificación*/ private int codecount = 5; / ** * xx */ private int xx = 0; / *** Altura de fuente*/ private int fontheight; / ** * Codey */ private int Codey; / ** * codeSequence */ string [] codeSequence = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "A", "B", "B", "C", "C" " , "D", "d", "e", "e", "f", "f", "g", "z", "x", "q", "v"}; / *** Inicialice los atributos de la imagen de verificación*/ public void init () lanza ServletException {// Obtener información inicial de Web.xml // Width String StrWidth = Width+""; // String de altura strheight = altura+""; // Número de caracteres String StrCodeCount = CodeCount+""; // Convierta la información configurada en una prueba numérica {if (strwidth! = Null && strwidth.length ()! = 0) {width = integer.parseInt (strwidth); } if (strheight! = null && strheight.length ()! = 0) {height = integer.parseInt (strheight); } if (strcodeCount! = null && strcodeCount.length ()! = 0) {codeCount = integer.parseInt (strcodeCount); }} Catch (NumberFormateException e) {E.PrintStackTrace (); } xx = width / (codecount + 2); // La distancia horizontal de generar números aleatorios fontheight = altura - 12; // La altura numérica de generar números aleatorios Codey = altura - 8; // La distancia vertical de la generación de números aleatorios} imágenes de cadena protegidas (httpservletRequest req, httpservletResponse resp) lanza ServletException, ioexception {init (); // Defina el buffer de imágenes BufferedImage buffimg = new BufferedImage (ancho, altura, bufferedimage.type_int_rgb); Graphics2d GD = Buffimg.CreateGraphics (); // Defina el buffer de imágenes BufferedImage buffimg = new BufferedImage (ancho, altura, bufferedimage.type_int_rgb); Graphics2d GD = Buffimg.CreateGraphics (); // Defina el buffer de imágenes BufferedImage buffimg = new BufferedImage (ancho, altura, bufferedimage.type_int_rgb); Graphics2d GD = Buffimg.CreateGraphics (); // Crear una clase de generador de números aleatorios Random Random = new Random (); // llenar la imagen como White GD.SetColor (color.white); gd.fillrect (0, 0, ancho, altura); // Crear una fuente, el tamaño de la fuente debe determinarse de acuerdo con la altura de la imagen. Fuente Font = nueva fuente ("FixedSys", Font.Plain, Fontheight); // Establecer la fuente. gd.setFont (fuente); // Dibuja bordes. GD.SetColor (color.black); gd.drawrect (0, 0, ancho - 1, altura - 1); // genera aleatoriamente 4 líneas de interferencia, lo que hace que el código de autenticación en la imagen sea menos probable que sean detectados por otros programas. GD.SetColor (color.black); for (int i = 0; i <4; i ++) {int x = random.nextint (ancho); int y = random.nextint (altura); int xl = random.nextint (12); int yl = random.nextint (12); gd.drawline (x, y, x + xl, y + yl); } // RandomCode se usa para guardar códigos de verificación generados aleatoriamente para que los usuarios puedan verificar después de iniciar sesión. StringBuffer RandomCode = new StringBuffer (); int rojo = 0, verde = 0, azul = 0; // genera aleatoriamente un código de verificación del número de código de código. for (int i = 0; i <codeCount; i ++) {// Obtenga el número de código de verificación generado aleatoriamente. String strrand = string.ValueOf (codeSequence [random.nextint (27)]); // Generar componentes de color aleatorios para construir el valor de color, de modo que el valor de color de cada salida de dígitos sea diferente. rojo = Random.NextInt (125); verde = Random.NextInt (255); Blue = Random.NextInt (200); // Use el color generado aleatoriamente para dibujar el código de verificación en la imagen. GD.SetColor (nuevo color (rojo, verde, azul)); gd.drawstring (strrand, (i + 1) * xx, codey); // Combinar los cuatro números aleatorios generados juntos. randomcode.append (strrand); } // Guarde el código de verificación de cuatro dígitos en la sesión. Httpsession session = req.getSession (); session.SetAttribute ("ValidateCode", RandomCode.ToString ()); // El caché de la imagen está prohibido. resp.setheader ("Pragma", "No-Cache"); resp.setheader ("Cache-Control", "No-Cache"); resp.SetDateHeader ("expiras", 0); resp.setContentType ("Image/jpeg"); // Salida la imagen a la transmisión de salida del servlet. ServLetOutputStream sos = resp.getOutputStream (); Imageio.write (buffimg, "jpeg", sos); sos.close (); regresar nulo; }}Este código es el método básico para generar imágenes de verificación.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos. También puede consultar el artículo anterior para un estudio en profundidad.