이 블로그는 프로젝트에서 이미지 확인 코드의 구현을 기록합니다. 그다지 복잡하지는 않지만 좋은 기억은 나쁜 펜만큼 좋지 않습니다. 기억하세요!
패키지 com.zl.util; import java.awt.color; Java.awt.Font 가져 오기; java.awt.graphics 가져 오기; java.awt.image.bufferedimage import; import java.io.fileoutputStream; import java.io.ioexception; import java.io.outputStream; java.util.random import; import javax.imageio.imageio; / ** * @author zzc * @date 2017 * @param * @desc 그래픽 검증 코드 생성 * */ public class verifyUtil {// verification code set private static final char [] chars = { '0', '1', '3', '4', '5', '6', '7', '', ',', ',', ',', ',', '8' 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b', ',', ',', ',', ',', ',', '', ', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; // 문자 수 비공개 정적 최종 int 크기 = 4; // 간섭 줄 수 개인 정적 최종 int 라인 = 5; // 너비 비공개 정적 최종 int 너비 = 80; // 높이 개인 정적 최종 int 높이 = 40; // 글꼴 크기 개인 정적 최종 최종 int font_size = 30; /*** 임의의 검증 코드 및 그림 생성* 개체 [0] : 검증 코드 문자열; * Object [1] : 검증 코드 사진. */ public static 객체 [] createImage () {StringBuffer sb = new StringBuffer (); // 1. 빈 이미지 생성 BufferedImage Image = New BufferedImage (너비, 높이, BufferedImage.type_int_rgb); // 2. 이미지 브러시 그래픽 그래픽 = image.getGraphics (); // 3. 브러시 색상 그래픽을 설정합니다. // 4. 사각형 배경 그래픽을 그립니다 .FillRect (0, 0, 너비, 높이); // 5. 랜덤 문자 그리기 임의 ran = new random (); for (int i = 0; i <size; i ++) {// 랜덤 문자 색인 int n = ran.nextInt (chars.length); // 랜덤 색상 그래픽을 설정합니다. // 글꼴 크기 그래픽을 설정합니다. // 문자 그래픽을 그립니다. drawString (chars [n] + "", i * 너비/ 크기, 높이 * 2/ 3); // 레코드 문자 sb.append (chars [n]); } // 6. (int i = 0; i <lines; i ++)의 간섭 줄을 그립니다. {// 랜덤 색상 그래픽을 설정합니다. // Random Color Graphic.Drawline (Ran.NextInt (width), Ran.NextInt (높이), Ran.NextInt (width), Ran.NextInt (높이)); } // 7. 반환 검증 코드 및 이미지 리턴 새 개체 [] {sb.toString (), image}; } / *** 임의의 색상* / public static color getRandomColor () {random ran = new random (); 색상 = 새 색상 (Ran.NextInt (256), Ran.NextInt (256), Ran.NextInt (256)); 반환 색상; } public static void main (String [] args)은 ioexception {object [] objs = createImage (); BufferedImage image = (BufferedImage) objs [1]; outputStream os = 새 FileOutputStream ( "d : /1.png"); imageio.write (image, "png", os); os.close (); }} 컨트롤러 계층
/** * @Author ZZC * @Date 2017 년 11 월 6 일 * @Param * @desc 그래픽 검증 코드 생성 방법 */valicode ") public void valicode (httpservletresponse 응답, Httpssession session) 예외 {// 제 1 매개 변수는 생성 된 이미지 코드입니다. objs = verifyutil.createimage (); // 확인 코드를 세션 세션에 저장합니다 .SetAttribute ( "imageCode", OBJS [0]); // 이미지를 브라우저에 출력 BufferedImage image = (bufferedImage) objs [1]; Response.setContentType ( "image/png"); outputStream os = response.getOutputStream (); imageio.write (image, "png", os); }실행 결과 :
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.