Cet article partage deux exemples pour vous, je crois que vous l'aimerez.
Exemple 1: générer de manière aléatoire des images de code de vérification et les sortir en tant que fichier PNG
Image de reproduction:
import java.awt.color; import java.awt.font; import java.awt.graphics; import java.awt.image.bufferedImage; import java.io.file; import java.io.ioexception; import java.util.random; import javax.imageio.imageio; classe publique MyTest10 {public static aléatoire aléatoire = new random (); public static int r (int min, int max) {int num = 0; num = random.nextint (max-min) + min; retour num; } public static void main (String [] args) lève ioException {// TODO Méthode générée automatiquement Stub // Créer une image int w = 120; int h = 50; BufferedImage IMG = new BufferedImage (W, H, BufferedImage.Type_int_rgb); // dessine un rectangle sur l'image en tant que graphiques d'arrière-plan g = img.getGraphics (); G.SetColor (nouvelle couleur (R (50 250), R (50 250), R (50 250))); G.Fillrect (0, 0, W, H); String str = "aqzxswedcfrvgtbhyujklp23456789"; pour (int i = 0; i <4; i ++) {g.setColor (nouvelle couleur (r (50 180), r (50,180), r (50 180))); g.setfont (new Font ("Bold", Font.Plain, 40)); char c = str.charat (r (0, str.length ())); G.Drawstring (String.ValueOf (C), 10 + I * 30, R (H-30, H)); } // dessine une ligne aléatoire pour (int i = 0; i <25; i ++) {g.setColor (nouvelle couleur (r (50,180), r (50 180), r (50,180)))); G.Drawline (R (0, W), R (0, H), R (0, W), R (0, H)); } // Sortie les images créées en mémoire dans le fichier fichier = nouveau fichier ("vCode.png"); Imageo.write (img, "png", fichier); System.out.println ("sortie d'image terminée"); }} Exemple 2: Java génère au hasard des codes de vérification de caractère chinois couramment utilisés
Importer java.awt.color; import java.awt.font; import java.awt.graphics; import java.awt.graphics2d; import java.awt.image.bufferedImage; import java.io.ioexception; import java.util.random; import javax.imageio.imageio; import javax.servert.servert; javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; / *** généré des caractères chinois aléatoires *** / public class drawimage prolonge httServlet {public static final int wawth = 120; public static compulté = 30; DOGT (HttpServLetRequest Request, HttpServletResponse Response) lève ServletException, ioException {this.dopost (demande, réponse);} public void doPost (httpservletRequest request, httpservletResponse réponse) {request.SetcharAtterencoding ("utf-8"); réponse.setContentType ("text / html; charset = utf-8"); // Créer un cache BufferedImage BI = new BufferedImage (largeur, hauteur, bufferedImage.type_int_rgb); // recouvrer la couleur GPHICS G = bi.getgraphics (); SetBackground (G); // Définissez le Border SetBorder (G); // dessiner la ligne d'interférence Drawrandomline (G); // Écrivez la chaîne de nombres aléatoires Random = Drawrandomnum ((Graphics2D) G); // Stockez les caractères chinois aléatoires dans la session Request.getSession (). SetAttribute ("Checkcode", Random); // Écrivez les graphiques au navigateur du navigateur au navigateur du navigateur au navigateur du navigateur au navigateur au navigateur du navigateur au navigateur du navigateur au navigateur au navigateur) Response.SetContentType ("Image / JPEG"); // Le navigateur de contrôle des cheveux ne cache pas Response.SetDateHeader ("Expries", -1); Response.sethEader ("Cache-Control", "No-cache"); Response. Response.getOutputStream ());} / *** Définir la couleur d'arrière-plan ** @param g * / private void SetBackground (Graphics G) {// set Color g.setColor (Color.white); // remplit la zone g.fillrect (0, 0, Width, Height);} / *** Set Border ** @param g * / private Void setbrander g.setColor (colore.blue); // zone de bordure g.drawrect (1, 1, largeur - 2, hauteur - 2);} / *** Draw Lines aléatoires ** @param g * / private void drawrandomline (graphics g) {// set colore g.setColor (Color.Green); // définit le nombre de lignes et de trace new Random (). nextInt (width); int y1 = new random (). nextInt (hauteur); int x2 = new random (). nextInt (width); int y2 = new random (). nextInt (height); g.drawline (x1, y1, x2, y2);}} / *** tire les caractères chinois ** @Param g * @ return * / private String {StringBuffer SB = new StringBuffer (); // Set Color G.SetColor (Color.red); // Set Font g.setfont (New Font ("宋体", Font.Bold, 20)); // Prépare les caractères chinois couramment utilisés Set String base de String Base = "/ u7684 / u4e00 / u4e86 / u662f / u6211 / u4e0d / u5728 / u4eba / u4eec / u6709 / u6765 / u4ed6 / u8fd9 / u4e0a / u7740 / U4E2A / U5730 / U5230 / U5927 / U91CC / U8BF4 / U5C31 / U53BB / U5B50 / U5F97 / U4E5F / U548C / U90A3 / U8981 / U4E0B / UU 770b / u5929 / u65f6 / u8fc7 / u51fa / u5c0f / u4e48 / u8d77 / u4f60 / u90fd / u628a / u597d / u8fd8 / u591a / u6ca1 / u4 E3A / U53C8 / U53EF / U5BB6 / U5B66 / U53EA / U4EE5 / U4E3B / U4F1A / U6837 / U5E74 / U60F3 / U751F / U540C / U8001 / U4E2 d / u5341 / u4ece / u81ea / u9762 / u524d / u5934 / u9053 / u5b83 / u540e / u7136 / u8d70 / u5f88 / u50cf / u89c1 / u4e24 / u7528 / u5979 / U56fd / u 52A8 / U8FDB / U6210 / U56DE / U4EC0 / U8FB9 / U4F5C / U5BF9 / U5F00 / U800C / U5DF1 / U4E9B / UU4E9B / UU4F5C / UU 73B0 / U5C71 / U6C11 / U5019 / U7ECF / U53D1 / U5DE5 / U5411 / U4E8B / U547D / U7ED9 / U957F / U6C34 / U51E0 / U4E49 / U4 E09 / U58F0 / U4E8E / U9AD8 / U624B / U77E5 / U7406 / U773C / U5FD7 / U70B9 / U5FC3 / U8218 / U4E8C / U95EE / U4F46 / U8EA b / u65b9 / u5b9e / u5403 / u505a / u53eb / u5f53 / u4f4f / u542c / u9769 / u6253 / u 5462 / u771f / u5168 / u624d / u56db / u5df2 / u6240 / u654c / u4e4b / u6700 / u514 9 / u4ea7 / u60c5 / u8def / u5206 / u603b / u6761 / u767d / u8bdd / u4e1c / uu4e1c / UU4EA7 / U60C5 / U8DEF / U5206 / U603B / U6761 / U767D / U8BDD / U4E1C / UU4E1C / U 5E2D / U6B21 / U4EB2 / U5982 / U88AB / U82B1 / U53E3 / U653E / U513F / U5E38 / U6C14 / U4E94 / U7B2C / U4F7F / U5199 / U5 19B / U5427 / U6587 / U8FD0 / U518D / U679C / U600E / U5B9A / U8BB8 / U5FEB / U660E / U884C / U56E0 / U522B / U98DE / U591 6 / u6811 / u7269 / u6d3b / u90e8 / u95e8 / u65e0 / u5f80 / u8239 / u671b / u65b0 / u5e26 / u961f / u5148 / u529b / u5b8c / u5374 / u7ad9 / u4ee3 / u5458 / u673a / u66f4 / u4e5d / u60a8 / u6bcf / u98ce / u7ea7 / u8ddf / u7b11 / u554a / u5b69 / u 4e07 / u5c11 / u76f4 / u610f / u591c / u6bd4 / u9636 / u8fde / u8f66 / u91cd / u4fbf / u6597 / u9a6c / u54ea / u5316 / u5 92a / u6307 / u53d8 / u793e / u4f3c / u58eb / u8005 / u5e72 / u77f3 / u6ee1 / u65e5 / u51b3 / u767e / u539f / u62ff / u7fa 4 / U7A76 / U5404 / U516D / U672C / U601D / U89E3 / U7ACB / U6CB3 / U6751 / U516B / U96BE / U65E9 / U8BBA / U5417 / U6839 / u5171 / u8ba9 / u76f8 / u7814 / u4eca / u5176 / u4e66 / u5750 / u63a5 / u5e94 / u5173 / u4fe1 / u89c9 / u6b65 / u53cd / u 5904 / U8BB0 / U5C06 / U5343 / U627E / U4E89 / U9886 / U6216 / U5E08 / U7ED3 / U5757 / U8DD1 / U8C01 / U8349 / U8D8A / U5 B57 / U52A0 / U811A / U7D27 / U7231 / U7B49 / U4E60 / U9635 / U6015 / U6708 / U9752 / U534A / U706B / U6CD5 / U9898 / U5EF a / u8d76 / u4f4d / u5531 / u6d77 / u4e03 / u5973 / u4efb / u4ef6 / u611f / u51c6 / u5f20 / u56e2 / u5c4b / u79bb / u8272 / u8138 / u7247 / u79d1 / u50 12 / U775B / U5229 / U4E16 / U521A / U4E14 / U7531 / U9001 / U5207 / U661F / U5BFC / U665A / UU4E14 / U7531 / U9001 / U5207 / U661F / U5BFC / U665A / UE 8868 / u591f / u6574 / u8ba4 / u54cd / u96ea / u6d41 / u672a / u573a / u8be5 / u5e76 / u5e95 / u6df1 / u523b / u5e73 / u4 f1f / u5fd9 / u63d0 / u786e / u8fd1 / u4eae / u8f7b / u8bb2 / u519c / u53e4 / u9ed1 / u544a / u754c / u62c9 / u540d / u544 0 / u571f / u6e05 / u9633 / u7167 / u529e / u53f2 / u6539 / u5386 / u8f6c / u753b / u9020 / u5634 / u6b64 / u6cbb / u5317 / u5634 / u6b64 / u6cbb / u5317 / u5fc5 / u670d / u96e8 / u7a7f / u5185 / u8bc6 / u9a8c / u4f20 / u4e1a / u83dc / u722c / u7761 / u5174 / u5f62 / u91cf / uu 54b1 / u89c2 / u82e6 / u4f53 / u4f17 / u901a / u51b2 / u5408 / u7834 / u53cb / u5ea6 / u672f / u996d / u516c / u65c1 / u6 23f / u6781 / u5357 / u67aa / u8bfb / u6c99 / u5c81 / u7ebf / u91ce / u575a / u7a7a / u6536 / u7b97 / u81f3 / u653f / u57c e / u52b3 / u843d / u94b1 / u7279 / u56f4 / u5f1f / u80dc / u6559 / u70ed / u5c55 / u5305 / u6b4c / u7c7b / u6e10 / u5f3a / u6570 / u4e61 / u54 7c / u6027 / u97f3 / u7b54 / u54e5 / u9645 / u65e7 / u795e / u5ea7 / u7ae0 / u5e2e / u5566 / u53d7 / uu5ea7 / u7ae0 / u5e2e / u5566 / u53d7 / uU 7cfb / u4ee4 / u8df3 / u975e / u4f55 / u725b / u53d6 / u5165 / u5cb8 / u6562 / u6389 / u5ffd / u79cd / u88c5 / u9876 / u6 025 / u6797 / u505c / u606f / u53e5 / u533a / u8863 / u822c / u62a5 / u53f6 / u538b / u6162 / u53d4 / u80cc / u7ec6 "; int x = 5; // Contrôle le nombre de mots pour (int i = 0; i <4; i ++) {// définir l'angle de rotation de police int de degré = new ralal 20); G.Drawstring (Ch, x, 20); // Angle inverse g.rotate (-degree * Math.pi / 180, x, 20); x + = 30;} return sb.tostring ();}}Ce qui précède sont les codes pertinents pour les codes de vérification d'image de génération de Java et les codes de vérification des caractères chinois. J'espère que cela sera utile à l'apprentissage de tous.