Artikel ini berbagi dua contoh untuk Anda, saya yakin Anda akan menyukainya.
Contoh 1: Menghasilkan gambar kode verifikasi secara acak dan mengeluarkannya sebagai file PNG
Gambar reproduksi:
impor java.awt.color; impor java.awt.font; impor java.awt.graphics; impor java.awt.image.bufferedimage; impor java.io.file; impor java.io.ioexception; impor java.util.random; impor javax.imageio.imageio; kelas publik mytest10 {public static acak acak = acak baru (); public static int r (int min, int max) {int num = 0; num = random.nextInt (max-min)+min; Return Num; } public static void main (string [] args) melempar ioException {// TODO Metode yang dihasilkan secara otomatis stub // Buat gambar int w = 120; int h = 50; BufferedImage IMG = BufferedImage baru (W, H, bufferedImage.type_int_rgb); // Gambar persegi panjang pada gambar sebagai latar belakang grafik g = img.getGraphics (); G.SetColor (warna baru (R (50.250), R (50.250), R (50.250))); g.fillrect (0, 0, w, h); String str = "AQZXSWEDCFRVGTBHYUJKLP23456789"; untuk (int i = 0; i <4; i ++) {g.setColor (warna baru (r (50.180), r (50.180), r (50.180)))); g.setfont (font baru ("Bold", font.plain, 40)); char c = str.charat (r (0, str.length ())); G.DrawString (String.Valueof (C), 10+I*30, R (H-30, H)); } // Gambarlah garis acak untuk (int i = 0; i <25; i ++) {g.setColor (warna baru (r (50.180), r (50.180), r (50.180))); G.Drawline (r (0, w), r (0, h), r (0, w), r (0, h)); } // output gambar yang dibuat di memori ke file file file = file baru ("vcode.png"); Imageo.write (img, "png", file); System.out.println ("output gambar selesai"); }} Contoh 2: Java secara acak menghasilkan kode verifikasi karakter Cina yang umum digunakan
impor java.awt.color; impor java.awt.font; impor java.awt.graphics; impor java.awt.graphics2d; impor java.awt.image.bufferedImage; impor java.io.ioexception; impor java.util.random; impor javax. javax.servlet.servletexception; impor javax.servlet.http.httpservlet; impor javax.servlet.http.httpservletRequest; impor javax.servlet public.htps clotppservletResponse;/*** generasi public {publicpsplips publicserpserpsResponse; = 120; Public Static Final Int Tinggi = 30; public void doGet (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {this.dopost (permintaan, respons);} publicrlexception (httpservletexceptexceptexception, htponExceptexcepion, htponExceptexcepion, htponExceptexcepion, htponExceptexcepion, htponExceptexcepion) {request.setcharacterencoding ("UTF-8"); response.setContentType ("Text/html; charset = UTF-8"); // Buat cache bufferedImage bi = BufferedImage baru (width, tinggi, bufferedimage.type_int_rgb); // dapatkan canvas grafik g = bubuk); Atur Border Setborder (g); // Gambar garis interferensi Drawrandomline (g); // Tulis string nomor acak acak = drawrandomnum ((grafik2d) g); // Simpan karakter Cina acak dalam permintaan sesi. Browser tidak cache response.setDateheader ("expries", -1); response.setheader ("cache-control", "no-cache"); response.setheader ("pragma", "no-cache"); // gambar @froundser (frougy (bi, "jpg", response.get @get @get @) (bi, "jpg", response.get outgream* @get @) (bi, "jpg", response.get outgream @ @) (bi, "jpg", response.get-get @get @(bi, "jpg", response.get outgream @ @(bi, "jpg", response.get oUnparam @get @) void setbackground (grafik g) {// Set Color G.SetColor (Color.White); // Isi area G.Fillrect (0, 0, lebar, tinggi);}/*** Set Border ** @param G*/Private Void Setborder (Graphics G) {// Setel Border Color G.Setcolor. Color. Tinggi - 2);}/*** Gambar garis acak ** @param g*/private void drawrandomline (grafik g) {// atur warna g.setColor (color.green); // Atur jumlah baris dan gambar draw untuk (int i = 0; i <5; i ++) {int x1 = new baru (). Nextint (selanjutnya); i <5; i ++) {int x1 = new baru (). NEXTINT (selanjutnya; Random().nextInt(WIDTH);int y2 = new Random().nextInt(HEIGHT);g.drawLine(x1, y1, x2, y2);}}/*** Draw random Chinese characters** @param g* @return*/private String drawRandomNum(Graphics2D g) {StringBuffer sb = new StringBuffer();// Set color g.setColor(Color.RED);// Set font g.setfont (font baru ("宋体", font.bold, 20)); // Siapkan karakter Cina yang biasa digunakan set 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/u57/u89c1/u4e24/u758/u59/u86c1/u4e24/u758/u59/u56/ 52a8/u8fdb/u6210/u56de/u4ec0/u8fb9/u4f5c/u5bf9/u5f00/u800c/u5df1/u4e9b/uu4e9b/uu4f5c/u5f00/u800c/u5df1/u4e9b/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/U6218/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/u66f/u7bf/u6bf/u916/u5207/u66f/u 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/ 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; // Kontrol jumlah kata untuk (int i = 0; i <4; i ++) {// atur font rotasi sudut int gelar = acak baru (). nextInt () % 30; // mencegat karakter Cina string ch = base.charat (new random (). nextInt (base.length ())+""; sb.charat (ch), ch);/ forward () ())+"; 20); g.drawstring (ch, x, 20); // sudut terbalik g.rotate (-degree * math.pi/ 180, x, 20); x += 30;} return sb.tostring ();}}Di atas adalah kode yang relevan untuk Java menghasilkan kode verifikasi gambar dan kode verifikasi karakter Cina. Saya berharap ini akan membantu untuk pembelajaran semua orang.