Home>

This article shares two examples for everyone,I believe everyone will like it.

Example 1:Generate a captcha image randomly and output it as a png file

Effect picture:

import java.awt.color;
import java.awt.font;
import java.awt.graphics;
import java.awt.image.bufferedimage;
import java.io.file;
import java.io.ioexception;
import java.util.random;
import javax.imageio.imageio;
public class mytest10 {
 public static random random=new random ();
 public static int r (int min, int max) {
  int num=0;
  num=random.nextint (max-min) + min;
  return num;
 }
 public static void main (string [] args) throws ioexception {
  //todo auto-generated method stub
  //Create a picture in memory
  int w=120;
  int h=50;
  bufferedimage img=new bufferedimage (w, h, bufferedimage.type_int_rgb);
  //Draw a rectangle on the picture as the background
  graphics g=img.getgraphics ();
  g.setcolor (new color (r (50,250), r (50,250), r (50,250)));
  g.fillrect (0, 0, w, h);
  string str="aqzxswedcfrvgtbhyujklp23456789";
  for (int i=0;i&4;i ++) {
   g.setcolor (new color (r (50,180), r (50,180), r (50,180)));
   g.setfont (new font ("Bold", font.plain, 40));
   char c=str.charat (r (0, str.length ()));
   g.drawstring (string.valueof (c), 10 + i * 30, r (h-30, h));
  }
  //Draw random lines
  for (int i=0;i<25;i ++) {
   g.setcolor (new color (r (50,180), r (50,180), r (50,180)));
   g.drawline (r (0, w), r (0, h), r (0, w), r (0, h));
  }
  //Output the image created in memory to a file
  file file=new file ("vcode.png");
  imageio.write (img, "png", file);
  system.out.println ("Image output completed");
 }
}

Example 2:Java randomly generates a common Chinese character verification code

import java.awt.color;
import java.awt.font;
import java.awt.graphics;
import java.awt.graphics2d;
import java.awt.image.bufferedimage;
import java.io.ioexception;
import java.util.random;
import javax.imageio.imageio;
import javax.servlet.servletexception;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
/**
* Generate random Chinese characters
*
*
* /
public class drawimage extends httpservlet {
public static final int width=120;
public static final int height=30;
public void doget (httpservletrequest request, httpservletresponse response)
throws servletexception, ioexception {
this.dopost (request, response);
}
public void dopost (httpservletrequest request, httpservletresponse response)
throws servletexception, ioexception {
request.setcharacterencoding ("utf-8");
response.setcontenttype ("text/html;charset=utf-8");
//create cache
bufferedimage bi=new bufferedimage (width, height,bufferedimage.type_int_rgb);
//get canvas
graphics g=bi.getgraphics ();
//Set the background color
setbackground (g);
//set the border
setborder (g);
//Draw interference lines
drawrandomline (g);
//write random numbers
string random=drawrandomnum ((graphics2d) g);
//Store random Chinese characters in session
request.getsession (). setattribute ("checkcode", random);
//write graphics to browser
response.setcontenttype ("image/jpeg");
//Header controls the browser not to cache
response.setdateheader ("expries", -1);
response.setheader ("cache-control", "no-cache");
response.setheader ("pragma", "no-cache");
//write image to browser
imageio.write (bi, "jpg", response.getoutputstream ());
}
/**
* Set background color
*
* @param g
* /
private void setbackground (graphics g) {
//set color
g.setcolor (color.white);
//fill the area
g.fillrect (0, 0, width, height);
}
/**
* Set border
*
* @param g
* /
private void setborder (graphics g) {
//Set the border color
g.setcolor (color.blue);
//border area
g.drawrect (1, 1, width-2, height-2);
}
/**
* Draw random lines
*
* @param g
* /
private void drawrandomline (graphics g) {
//set color
g.setcolor (color.green);
//Set the number of lines and draw lines
for (int i=0;i<5;i ++) {
int x1=new random (). nextint (width);
int y1=new random (). nextint (height);
int x2=new random (). nextint (width);
int y2=new random (). nextint (height);
g.drawline (x1, y1, x2, y2);
}
}
/**
* Draw random Chinese characters
*
* @param g
* @return
* /
private string drawrandomnum (graphics2d g) {
stringbuffer sb=new stringbuffer ();
//set color
g.setcolor (color.red);
//set font
g.setfont (new font ("Songti", font.bold, 20));
//Prepare common Chinese character set
string base="\ u7684 \ u4e00 \ u4e86 \ u662f \ u6211 \ u4e0d \ u5728 \ u4eba \ u4eec \ u6709 \ u6765 \ u4ed6 \ u8fd9 \ u4e0a \ u7740 \ u4e2a \ u5730 \ u5230 \ u5927 \ u5u31uucc \ u5b50 \ u5f97 \ u4e5f \ u548c \ u90a3 \ u8981 \ u4e0b \ u770b \ u5929 \ u65f6 \ u8fc7 \ u51fa \ u5c0f \ u4e48 \ u8d77 \ u4f60 \ u90fd \ u628a \ u597d \ u8u8u8u8f \ u5bb6 \ u5b66 \ u53ea \ u4ee5 \ u4e3b \ u4f1a \ u6837 \ u5e74 \ u60f3 \ u751f \ u540c \ u8001 \ u4e2d \ u5341 \ u4ece \ u81ea \ u9762 \ u524d \ u5934 \ u9053 \ u5b \ u5b83 \ u50cf \ u89c1 \ u4e24 \ u7528 \ u5979 \ u56fd \ u52a8 \ u8fdb \ u6210 \ u56de \ u4ec0 \ u8fb9 \ u4f5c \ u5bf9 \ u5f00 \ u800c \ u5df1 \ u4e9b \ u73b0 \ u5c71 \ u6c11 \ u5019 \ u7ecf \ u53d1 \ u5de5 \ u5411 \ u4e8b \ u547d \ u7ed9 \ u957f \ u6c34 \ u51e0 \ u4e49 \ u4e09 \ u58f0 \ u4e8e \ u9ad8 \ u624b \ u77e5 \ u7406 \ u773c \ u5fd7 \ u70b9 \ u5fc4 \ 8uu \ u5fc3 \ uu8e \ u5b9e \ u5403 \ u505a \ u53eb \ u5f53 \ u4f4f \ u542c \ u9769 \ u6253 \ u5462 \ u771f \ u5168 \ u624d \ u56db \ u5df2 \ u6240 \ u654c \ u4e4b \ u6700 \ u5149 \ u4ea7u \ u60 \ 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 \ u98de \ u5916 \ u6811 \ u7e \ u6u \ u6269 \ u6u u5f80 \ u8239 \ u671b \ u65b0 \ u5e26 \ u961f \ u5148 \ u529b \ u5b8c \ u5374 \ u7ad9 \ u4ee3 \ u5458 \ u673a \ u66f4 \ u4e5d \ u60a8 \ u6bcf \ u98ce \ u7ea7 \ u8uuuf u5c11 \ u76f4 \ u610f \ u591c \ u6bd4 \ u9636 \ u8fde \ u8f66 \ u91cd \ u4fbf \ u6597 \ u9a6c \ u54ea \ u5316 \ u592a \ u6307 \ u53d8 \ u793e \ u4f3c \ u58eb \ u8005 \ u8005 \ u8005 u51b3 \ u767e \ u539f \ u62ff \ u7fa4 \ u7a76 \ u5404 \ u516d \ u672c \ u601d \ u89e3 \ u7acb \ u6cb3 \ u6751 \ u516b \ u96be \ u65e9 \ u8bba \ u5417 \ u6839 \ u5171 \ u8ba9 u5176 \ u4e66 \ u5750 \ u63a5 \ u5e94 \ u5173 \ u4fe1 \ u89c9 \ u6b65 \ u53cd \ u5904 \ u8bb0 \ u5c06 \ u5343 \ u627e \ u4e89 \ u9886 \ u6216 \ u5e08 \ u7ed3 \ u5757 \ 8u8u8u8uu8uu8uu8uu8uu8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u8u \ u5e \ u5e \ u5e7 u5b57 \ u52a0 \ u811a \ u7d27 \ u7231 \ u7b49 \ u4e60 \ u9635 \ u6015 \ u6708 \ u9752 \ u534a \ u706b \ u6cd5 \ u9898 \ u5efa \ u8d76 \ u4f4d \ u5531 \ u6d77 \ u4ef4 \ u4e03uu u51c6 \ u5f20 \ u56e2 \ u5c4b \ u79bb \ u8272 \ u8138 \ u7247 \ u79d1 \ u5012 \ u775b \ u5229 \ u4e16 \ u521a \ u4e14 \ u7531 \ u900 1 \ u5207 \ u661f \ u5bfc \ u665a \ u8868 \ u591f \ u6574 \ u8ba4 \ u54cd \ u96ea \ u6d41 \ u672a \ u573a \ u8be5 \ u5e76 \ u5e95 \ u6df1 \ u523b \ u5e73 \ u4f1f \ u5fuuu5f u4eae \ u8f7b \ u8bb2 \ u519c \ u53e4 \ u9ed1 \ u544a \ u754c \ u62c9 \ u540d \ u5440 \ u571f \ u6e05 \ u9633 \ u7167 \ u529e \ u53f2 \ u6539 \ u5386 \ u8f6c \ u753b \ u90 u5317 \ u5fc5 \ u670d \ u96e8 \ u7a7f \ u5185 \ u8bc6 \ u9a8c \ u4f20 \ u4e1a \ u83dc \ u722c \ u7761 \ u5174 \ u5f62 \ u91cf \ u54b1 \ u89c2 \ u82e6 \ u4u4u53 \ u4f53 u53cb \ u5ea6 \ u672f \ u996d \ u516c \ u65c1 \ u623f \ u6781 \ u5357 \ u67aa \ u8bfb \ u6c99 \ u5c81 \ u7ebf \ u91ce \ u575a \ u7a7a \ u6536 \ u7b97 \ u81f3 \ u653fu \ u653fu u7279 \ u56f4 \ u5f1f \ u80dc \ u6559 \ u70ed \ u5c55 \ u5305 \ u6b4c \ u7c7b \ u6e10 \ u5f3a \ u6570 \ u4e61 \ u547c \ u6027 \ u97f3 \ u7b54 \ u54e5 \ u75 \ u5u5u \ u75 u5566 \ u53d7 \ u7cfb \ u4ee4 \ u8df3 \ u975e \ u4f55 \ u725b \ u53d6 \ u5165 \ u5cb8 \ u6562 \ u6389 \ u5ffd \ u79cd \ u88c5 \ u9876 \ u6025 \ u6797 \ u505c \ u5 \ u606f \ u53 u62a5 \ u53f6 \ u538b \ u6162 \ u53d4 \ u80cc \ u7ec6 ";
int x=5;
//control word count
for (int i=0;i<4;i ++) {
//Set the font rotation angle
int degree=new random (). nextint ()%30;
//intercept Chinese characters
string ch=base.charat (new random (). nextint (base.length ())) + "";
sb.append (ch);
//positive angle
g.rotate (degree * math.pi/180, x, 20);
g.drawstring (ch, x, 20);
//reverse angle
g.rotate (-degree * math.pi/180, x, 20);
x +=30;
}
return sb.tostring ();
}
}
  • Previous PHP implementation of searching for geographic locations and calculating the distance between two geographic locations
  • Next Detailed explanation of Jiugong coordinate calculation and dictionary conversion model in iOS application UI development