Кода -копия выглядит следующим образом:
пакет com.sanrong;
импортировать java.awt.color;
импортировать java.awt.font;
импортировать java.awt.graphics;
импортировать java.awt.graphics2d;
Импорт java.awt.image.bufferedImage;
импортировать java.io.ioexception;
импортировать java.util.random;
Импорт javax.imageio.imageio;
Импорт javax.servlet.servletexception;
Импорт javax.servlet.http.httpservlet;
Импорт javax.servlet.http.httpservletrequest;
Импорт javax.servlet.http.httpservletresponse;
/**
* Создать код проверки изображения
* Использование API --- BufferedImage
* @Author SSA
*/
открытый класс Test4pic расширяет httpservlet {
// определить длину и ширину постоянной
Частный статический финальная ширина int = 130;
Частный статический конечный высота int = 30;
Public Void Doget (httpservletrequest, httpservletresponse response)
бросает ServletException, ioException {
// Получить фоновый контейнер. Этот метод возвращает графику2D, но здесь для обратной совместимости.
BufferedImage Image = new BufferedImage (ширина, высота, bufferedimage.type_int_rgb);
// Создать Graphics2D, которая может быть использована для привлечения этого BufferedImage.
Graphics Graphics = image.getGraphics ();
// установить фон
Betbackground (Graphics);
// установить границу
SetBorder (Graphics);
// Нарисуйте случайную линию
Drawrandomline (графика);
// нарисовать случайное число
Drawrandomnum (((Graphics2d) Graphics);
// Уведомление о том, что браузер возвращает изображение, чтобы тип Memetype был запросом в конфигурации Tomcat.
response.setContentType ("Image/jpeg");
Imageio.write (Image, "jpg", response.getOutputStream ());
}
Private void Drawrandomnum (Graphics2D Graphics) {
// Написать случайные числа
graphics.setcolor (color.blue);
graphics.setfont (новый шрифт ("宋体", font.bold, 20));
// но в нем много редких слов, которые должны быть отфильтрованы и выбранные общие китайцы
Нить BASE = "/U7684/U4E00/U4E86/U662F/U6211/U4E0D/U5728/U4EBA/U4EEC/U6709/U6765/U4ED6/U8FD9/U4E0A/U7740/U4E2A/U5730/U5230/U49271/U59231/U59271/U59231/U59271/U592331/U592331/U592331/U59230/U59231/U59271/U59231/U59231/U59271/U59231/U. U5C31/U53BB/ U5B50/U5F97/U4E5F/U548C/U90A3/U8981/U. 4e0b/u770b/u5929/u65f6/u8fc7/u51fa/u5c0f/u4e48/u8d77/u4f60/u90fd/u628a/u597d/u8fd8/u591a/u6ca1/u4e3a/u53c8/u53ef/u5bb6/u5b66/u53ea/u4ee5/u4e3b/u4f1a/ U6837/U5E74/U60F3/U751F/U540C/U800 1/U4E2D/U5341/U4ECE/U81EA/U9762/U524D/U5934/U9053/U5B83/U540E/U7136/U8D70/U5F88/U50CF/U89C1/U4E24/U7528/U5979/U567/U5979/U5979/U5979/U5979/U5979/U5979/U5979/U5979/U5979/U597/U5979/U5979/U597/U5979/U5979/U5979/U597/U597/U597/U597/U5979/U597/U597/U597/U5979/U597/U7 B/U6210/U56DE/U4EC0/ U8FB9/U4F5C/U5BF9/U5F00/U800C/U5DF1/U. 4e9b/u73b0/u5c71/u6c11/u5019/u7ecf/u53d1/u5de5/u5411/u4e8b/u547d/u7ed9/u957f/u6c34/u51e0/u49/u4e09/u58f0/u4e8e8e8e8e8e8 5/U7406/U773C/U5FD7/ U70B9/U5FC3/U6218/U4E8C/U95EE/U4F4 6/U8EAB/U65B9/U5B9E/U5403/U505A/U53EB/U5F53/U4F4F/U542C/U9769/U6253/U5462/U771F/U5168/U624D/U56DB/U5DF240/U6440/U6440/U6540/U6440/U6440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U5440/U544. 00/u5149/u4ea7/u60c5/ U8DEF/U5206/U603B/U6761/U767D/U8BDD/ u4e1c/u5e2d/u6b21/u4eb2/u5982/u88ab/u82b1/u53e3/u653e/u513f/u5e38/u6c14/u4e94/u7b2c/u4f7f/u5199/u519b/u5427/u6587/u8fd0/u518d/u679c/u600e/u5b9a/u8bb8/ U5FEB/U660E/U884C/U56E0/U522B/U98 de/u5916/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/U4E07/U5C11/U76F4/U610F/U591C/U6BD4/U9636/U8FDE/U8F66/U91CD/U4FBF/U6597/U9A6C/U54EA/U5316/U592A/U6307/U9A6C/U54EA/U5316/U592A/U6307/U53ER/U53ES/U53. 58EB/U8005/U5E72/U77F3/ U6EE1/U65E5/U51B3/U767E/U539F/U62 ff/u7fa4/u7a76/u5404/u516d/u672c/u601d/u89e3/u7acb/u6cb3/u6751/u516b/u96be/u65e9/u8bba/u5417/u6839/u5171/u65e9/u8bba/u5417/u6839/u5171/u65e9/u8bba/u5417/u6839/u65e9/u8bba/u81417/u6839/u65e9/u8bba/u8bba/u8bba/u8bba/u8bba/u8bba/u8bba/u8bba/u8bba/u8bba A/U5176/U4E66/U5750/ U63A5/U5E94/U5173/U4FE1/U89C9/U6B65 /U53CD/U5904/U8BB0/U5C06/U5343/U627E/U4E89/U9886/U6216/U5E08/U7ED3/U5757/U8DD1/U8C01/U8349/U8D8A/U5B57/U82A01/U8349/U8D8A/U5B57/U52A01/U83A01/U82A01/U8349/U8D8A/U5B57/U82A01/U83A01/U83A01/U83A01/U83A01/U83A01/U83A01/U83A01/U83A01/U83A01/U83A01/U83A01/U83A01/U8349/U8D8A/U52A01 /7/U82A01/U82A01/U83A. 1/U7B49/U4E60/U9635/U6015 /U6708/U9752/U534A/U706B/U6CD5/U9 898/u5efa/u8d76/u4f4d/u5531/u6d77/u4e03/u5973/u4efb/u4ef6/u611f/u51c6/u5f20/u56e2/u5c4b/u79bb/u8272/u8138/u7247/u79d1/u5012/u775b/u5229/u4e16/u521a/ U4E14/U7531/U9001/U5207/U661F/U5BFC /U665A/U8868/U591F/U6574/U8BA4/U54CD/U96EA/U6D41/U672A/U573A/U8BE5/U5E76/U5E95/U6DF1/U523B/U5E73/U4F1F/U5FD9/U6FD9/U6FD9/U6FD9/U6FD9/U6FD9/U6FD9/U6FD9/U6FD9/U6FD9/U6FD9/U6FD9/U5FD9/U5FD9/U5FD9/U5FD9 /U4EAE/U8F7B/U8BB2/U519C /U53E4/U9ED1/U544A/U754C/U62C9/U5 40d/u5440/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/U5F6 2/u91cf/u54b1/u89c2/u82e6/u4f53/u4f17/u901a/u51b2/u5408/u7834/u53cb/u5ea6/u672f/u996d/u516c/u65c1/u623f/u6781/u5357/u67aa/u8bfb/u6c99/u5c81/u7ebf/ U91CE/U575A/U7A7A/U6536/U7B97/U81F3/U. 653f/u57ce/u52b3/u843d/u94b1/u7279/u56f4/u5f1f/u80dc/u6559/u70ed/u5c55/u5305/u6b4c/u7c7b/u6e10/u5f3a/u6570/u4e61/u547c/u6027/u97f3/u7b54/u54e5/u9645/ U65E7/U795E/U5EA7/U7A0/U5E2E/U556 6/U53D7/U7CFB/U4EE4/U8DF3/U975E/U4F55/U725B/U53D6/U5165/U5CB8/U6562/U6389/U5FFD/U79CD/U88C5/U9876/U6025/U6797/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U677/U697 5/u533a/u8863/u822c/ U62A5/U53F6/U538B/U6162/U53D4/U80CC ";
int x = 10;
для (int i = 0; i <4; i ++) {
// Получить четыре случайных китайских иероглиф. Интервал Unicode китайских иерогене: [/u4e00-/u9fa5]
String ch = base.charat (new random (). Nextint (base.length ()))+"";
// Установить угол вращения 0 -30 градусов (разделен на 30, остальная часть не будет больше 30)
int destre = new random (). nextint ()%30;
// угол поворота текста*3.14/180 = радиан
graphics.rotate (степень*math.pi/180, x, 23);
graphics.drawstring (ch, x, 23);
// очистить угол поворота
graphics.rotate (-degree*math.pi/180, x, 23);
x = x+30;
}
}
Private void Drawrandomline (Graphics Graphics) {
// рисовать случайные линии
graphics.setcolor (color.magenta);
для (int i = 0; i <5; i ++) {
/**
* Возвращает псевдорандома, равномерно распределенное {@code int}
* Между 0 (включительно) и указанным значением (эксклюзивным)
*/
int x1 = new Random (). NextInt (ширина);
int y1 = new Random (). NextInt (высота);
int x2 = new Random (). NextInt (ширина);
int y2 = new Random (). NextInt (высота);
graphics.drawline (x1, y1, x2, y2);
}
}
Private void Betbackground (Graphics Graphics) {
// установить цвет: розовый
graphics.setcolor (color.pink);
graphics.fillrect (0, 0, ширина, высота);
}
Private void SetBorder (Graphics Graphics) {
// установить границы
graphics.setcolor (color.blue);
graphics.drawrect (1, 1, ширина-2, высота-2);
}
public void Dopost (httpservletrequest, httpservletresponse response)
бросает ServletException, ioException {
Дожет (запрос, ответ);
}
}