이 기사의 예제는 귀하의 참조에 대한 Java Generation Letter Verification Code에 대한 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
import java.awt.basicstroke; import java.awt.color; import java.awt.font; import java.awt.graphics2d; import java.awt.image.bufferedimage; import java.io.ioexception; import java.io.outputstream; import java.random.util.randome.; 클래스 verifycode {// 사진 너비와 높이 비공개 int w = 70; 개인 int h = 35; 개인 랜덤 r = 새로운 랜덤 (); private String [] fontnames = { "노래 글꼴", "중국 카이 글꼴", "Bold Font", "Microsoft Elegant Black", "Kai Font_GB2312"}; 개인 문자열 코드 = "234567890QWERTYUIPASDFGHJKZXCVBNMQWERTYUIPASDFGHJKZXCVBNM"; 개인 색상 bgcolor = 새로운 색상 (255,255,255); 개인 문자열 텍스트; // 임의의 색상 생성 개인 색상 randomcolor () {int red = r.nextInt (150); int green = R.NextInt (150); int blue = r.nextint (150); 새로운 색상 (빨간색, 녹색, 파란색)을 반환합니다. } // 임의의 글꼴 생성 개인 글꼴 randomfont () {int index = r.nextInt (fontnames.length); 문자열 fontname = fontnames [index]; int style = r.nextint (4); // 0 None 1 Bold 2 이탈리아 3 bold + 경사 int size = r.nextint (5) +24; // 임의의 글꼴 크기 생성 24 ~ 28 새 글꼴을 반환합니다 (fontname, style, size); } // 간섭선 프라이버시 라인 (bufferedImage image) {// 4 개의 간섭선 생성 int num = 4; Graphics2d bi = (Graphics2d) image.getGraphics (); for (int i = 0; i <num; i ++) {int x1 = r.nextint (w); int x2 = r.nextint (w); int y1 = r.nextint (h); int y2 = r.nextint (h); Bi.SetStroke (New BasicStroke (1.5f)); Bi.setColor (Color.Blue); // 간섭선 색상 BI.DrawLine (X1, Y1, X2, Y2); }} // 문자의 임의 생성 개인 char randomchar () {int index = r.nextInt (codes.length ()); return codes.charat (색인); } // 이미지 버퍼 private bufferedImage createImage () {bufferedImage image = new bufferedImage (w, h, bufferedImage.type_int_bgr); Graphics2d bi = (Graphics2d) image.getGraphics (); Bi.setColor (this.bgcolor); bi.fillRect (0, 0, w, h); 리턴 이미지; } // 이미지 생성 공개 bufferedImage getImage () {bufferedImage image = createImage (); Graphics2d bi = (Graphics2d) image.getGraphics (); StringBuilder sb = new StringBuilder (); for (int i = 0; i <4; i ++) {String String = randomchar ()+""; sb.append (문자열); // 각 문자는 이미지의 1/4 너비를 차지합니다. float x = i*1.0f*w/4; // random font format bi.setfont (randomfont ()); bi.setColor (randomcolor ()); // 이미지의 적절한 위치에 문자를 쓰십시오 (H-6은 이미지가 바닥에서 6 높이임을 의미합니다) BI.DrawString (String, X, H-6); } this.text = sb.toString (); 드로 라인 (이미지); 리턴 이미지; } // 획득 한 글꼴 공개 문자열 getText () {return text; } // 지정된 위치에 이미지를 쓰기 공개 정적 무효 출력 (bufferedImage image, outputStream out) {try {imageio.write (image, "jpg", out); } catch (ioexception e) {e.printstacktrace (); }}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.