Этот блог записывает реализацию кода проверки изображения в проекте. Хотя это не очень сложно, хорошая память не так хороша, как плохая ручка. Помните!
пакет com.zl.util; импортировать java.awt.color; импортировать java.awt.font; импортировать java.awt.graphics; Импорт java.awt.image.bufferedImage; Импорт java.io.fileOutputStream; импортировать java.io.ioexception; импортировать java.io.outputstream; импортировать java.util.random; Импорт javax.imageio.imageio; /** * @author ZZC * @date November 6, 2017* @param * @desc Graphic verification code generation* */ public class VerifyUtil { // Verification code character set private static final char[] chars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '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', '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'}; // количество символов частное статическое конечное значение int size = 4; // количество интерференционных линий частные статические конечные линии int = 5; // ширина частная статическая конечная ширина int = 80; // высота частная статическая конечная высота int = 40; // размер шрифта частный статический окончательный финал int font_size = 30; /*** Сгенерировать код случайной проверки и изображение* Object [0]: Строка кода проверки; * Объект [1]: изображение кода проверки. */ public static object [] createImage () {stringBuffer sb = new StringBuffer (); // 1. Создать пустое изображение BufferedImage Image = new BufferedImage (ширина, высота, bufferedimage.type_int_rgb); // 2. Получить изображение щеткой графики Graphic = image.getGraphics (); // 3. Установите щетку Color Graphics.setColor (color.light_gray); // 4. Нарисуйте прямоугольную фоновую графику. FillRect (0, 0, ширина, высота); // 5. Нарисуйте случайные символы rand ran = new Random (); for (int i = 0; i <size; i ++) {// возьмите случайный индекс символов int n = ran.nextint (chars.length); // Установить случайный цвет graphic.setcolor (getrandomcolor ()); // Установить размер шрифта graphic.setfont (новый шрифт (null, font.bold + font.italic, font_size)); // рисовать символ графики. // записывает символы SB.Append (chars [n]); } // 6. Нарисуйте интерференционную линию для (int i = 0; i <lines; i ++) {// Установить случайный цвет graphic.setcolor (getrandomcolor ()); // случайный цветовой график. } // 7. вернуть код проверки и изображение возвращает новый объект [] {sb.tostring (), image}; } / *** Случайный цвет* / public static color getrandomcolor () {случайный 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 = new FileOutputStream ("d: /1.png"); Imageio.Write (Image, "png", OS); os.close (); }} Контроллер слой
/** * @author zzc * @date 6 ноября 2017 г. * @param * @desc Графический код кода * * */@requestmapping ("/valicode") Общедоступный void valicode (httpservletresponse, httpsession session). 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 больше.