Blog ini merekam implementasi kode verifikasi gambar dalam proyek. Meskipun tidak terlalu rumit, ingatan yang baik tidak sebagus pena yang buruk. Ingatlah!
paket com.zl.util; impor java.awt.color; impor java.awt.font; impor java.awt.graphics; impor java.awt.image.bufferedimage; impor java.io.fileoutputStream; impor java.io.ioException; impor java.io.outputStream; impor java.util.random; impor javax.imageio.imageio; / ** * @author zzc * @Date 6 November 2017 * @param * @desc generasi kode verifikasi grafis * */ kelas publik verifikasi {// Kode verifikasi set private static final char [] chars = {'0', '1', '2', '3', '4', '5', '' ',', '7', '9,', ',', ',' ',' ',' ',' ',' ',' ', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; // Jumlah karakter ukuran int statis privat statis = 4; // Jumlah garis interferensi Private static final int line = 5; // Lebar private static final int width = 80; // tinggi private static final int height = 40; // font ukuran private static final int font_size = 30; /*** menghasilkan kode dan gambar verifikasi acak* objek [0]: string kode verifikasi; * Objek [1]: Gambar kode verifikasi. */ objek statis public [] createMage () {StringBuffer SB = New StringBuffer (); // 1. Buat gambar bufferedimage kosong = BufferedImage baru (lebar, tinggi, bufferedImage.type_int_rgb); // 2. Dapatkan grafik grafik sikat gambar = gambar.getGraphics (); // 3. Atur grafis warna sikat.setColor (color.light_gray); // 4. Gambar grafik latar belakang persegi panjang.fillrect (0, 0, lebar, tinggi); // 5. Gambar karakter acak acak ran = new random (); untuk (int i = 0; i <size; i ++) {// Ambil indeks karakter acak int n = ran.nextint (chars.length); // atur grafis warna acak.setColor (getRandomColor ()); // Atur font ukuran grafis.setFont (font baru (null, font.bold + font.italic, font_size)); // Gambar karakter grafis.drawstring (chars [n] + "", i * lebar/ ukuran, tinggi * 2/3); // Rekam Karakter SB.Append (Chars [n]); } // 6. Gambarkan garis interferensi untuk (int i = 0; i <line; i ++) {// atur random color graphic.setColor (getRandomColor ()); // grafis warna acak.drawline (ran.nextint (lebar), ran.nextint (tinggi), ran.nextint (lebar), ran.nextint (tinggi)); } // 7. Kembali Kode Verifikasi dan Gambar Pengembalian Objek Baru [] {SB.ToString (), Image}; } / *** warna acak* / warna statis publik getRandomColor () {acak ran = acak baru (); Warna warna = warna baru (ran.nextint (256), ran.nextint (256), ran.nextint (256)); Warna pengembalian; } public static void main (string [] args) melempar ioException {objek [] objs = createImage (); BufferedImage Image = (BufferedImage) OBJS [1]; OutputStream os = new fileoutputStream ("d: /1.png"); Imageo.write (Image, "Png", OS); os.close (); }} Lapisan pengontrol
/** * @Author zzc * @Date 6 November 2017 * @param * @desc Metode pembuatan kode verifikasi grafis * */@RequestMapping ("/valicode") void valicode (httpservleSponse gener, httpsession Sesi) membuat Exception Exception {// menggunakan gambar gambar Generate Parameter, httpsessiony) Objek [] objs = verifyutil.createImage (); // Simpan kode verifikasi ke sesi sesi.setAttribute ("ImageCode", OBJS [0]); // output gambar ke browser bufferedImage Image = (bufferedImage) OBJS [1]; response.setContentType ("Image/png"); OutputStream os = response.getoutputStream (); Imageo.write (Image, "Png", OS); }Hasil Menjalankan:
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.