Ce blog enregistre la mise en œuvre d'un code de vérification d'image dans le projet. Bien que ce ne soit pas très compliqué, un bon souvenir n'est pas aussi bon qu'un mauvais stylo. Rappelez-vous!
package com.zl.util; import java.awt.color; Importer java.awt.font; import java.awt.graphics; Importer java.awt.image.bufferedImage; Importer java.io.fileOutputStream; Importer java.io.ioException; import java.io.outputStream; import java.util.random; import javax.imageio.imageio; / ** * @author zzc * @Date 6 novembre 2017 * @param * @descs graphique de vérification Génération de code * * / public class VerifyUtil {// code de vérification Set de caractère privé statique final car 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', `` o ',' v ',' '', 'r', 's', 't', 'u', 'v', `` w '', 'x', ',', ',', a ',' b '', ',', ', "f', ', a', 'b' 'G', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; // Nombre de caractères private static final int size = 4; // Nombre de lignes d'interférence Lignes d'int final statique privée = 5; // Largeur privé statique final intratic largeth = 80; // hauteur privée statique finale finale hauteur = 40; // FONT TAILLE PRIVATE STATIQUE FINAL INT FONT_SIZE = 30; / ** * générer du code de vérification aléatoire et de l'image * objet [0]: chaîne de code de vérification; * Objet [1]: image de code de vérification. * / public static objet [] createImage () {stringBuffer sb = new StringBuffer (); // 1. Créez une image vierge BufferedImage Image = new BufferedImage (largeur, hauteur, bufferedImage.type_int_rgb); // 2. Obtenez le graphique Graphics Graphics de Brush = Image.getGraphics (); // 3. Définissez les graphiques de couleur de pinceau.setColor (Color.light_Gray); // 4. dessiner les graphiques d'arrière-plan du rectangle.filrect (0, 0, largeur, hauteur); // 5. dessiner des caractères aléatoires randomy ran = new random (); for (int i = 0; i <size; i ++) {// prenez l'index de caractère aléatoire int n = ran.nextint (chars.length); // Définit la couleur aléatoire Graphic.SetColor (getrandomColor ()); // Définissez la taille de police graphic.setfont (new Font (null, font.bold + font.alic, font_size)); // dessiner le caractère graphic.Drawstring (chars [n] + "", i * largeur / taille, hauteur * 2/3); // Enregistrer les caractères SB.APPEND (Chars [n]); } // 6. Draw la ligne d'interférence pour (int i = 0; i <lignes; i ++) {// définir la couleur aléatoire graphic.setColor (getRandomColor ()); // Random Color Graphic.Drawline (ran.nextint (largeur), ran.nextint (hauteur), ran.nextint (largeur), ran.nextint (hauteur)); } // 7. RETOUR CODE DE VÉRIFICATION ET IMAGE RETOUR NOUVEAU objet [] {sb.toString (), image}; } / ** * Couleur aléatoire * / Couleur statique publique getRandomColor () {Random ran = new Random (); Couleur couleur = nouvelle couleur (ran.nextint (256), ran.nextint (256), ran.nextint (256)); retour de la couleur; } public static void main (string [] args) lève ioException {objet [] objs = createImage (); BufferedImage Image = (BufferedImage) Objs [1]; OutputStream os = new FileOutputStream ("d: /1.png"); Imageo.write (image, "png", os); os.close (); }} Couche de contrôleur
/** * @author ZZC * @date November 6, 2017* @param * @desc Graphic verification code generation method* */ @RequestMapping("/valicode") public void valicode(HttpServletResponse response,HttpSession session) throws Exception{ //Use image tools to generate images//The first parameter is the generated verification code, and the second parameter is the generated image Object[] objs = VerifyUtil.CreateImage (); // Stockez le code de vérification dans Session Session.SetAttribute ("ImageCode", Objs [0]); // Sortie de l'image vers le navigateur BufferedImage Image = (BufferedImage) Objs [1]; réponse.setContentType ("image / png"); OutputStream OS = Response.getOutputStream (); Imageo.write (image, "png", os); }Résultats en cours:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.