Java implementation Verification Code specific code (pictures, Chinese characters) _java

Source: Internet
Author: User
Tags border color set background stringbuffer

This article for everyone to share two examples, I believe you will love.

Example 1: Randomly generating a captcha picture and outputting it as a PNG file

Effect Chart:

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 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 when 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 line 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 the file ("Vcode.png") in Files ("=new");
    Imageio.write (IMG, "PNG", file);
     
  System.out.println ("Picture output complete");
 }
 
}

Instance 2:java randomly generates 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; /** * generates random Chinese characters * * */public class DrawImage extends HttpServlet {public static final int WIDTH = n; 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 {req
Uest.setcharacterencoding ("Utf-8");
Response.setcontenttype ("Text/html;charset=utf-8");
Create cache BufferedImage bi = new BufferedImage (WIDTH, HEIGHT, Bufferedimage.type_int_rgb); Get the canvas Graphics g = BI.GEtgraphics ();
Set the background color setbackground (g);
Set the Border SetBorder (g);
Draw Disturbing line drawrandomline (g);
Write random number String random = Drawrandomnum ((graphics2d) g);
The existence of random Chinese characters in the session request.getsession (). setattribute ("Checkcode", random);
Write the graph to the browser response.setcontenttype ("Image/jpeg");
Hair Head Control browser do not cache Response.setdateheader ("Expries",-1);
Response.setheader ("Cache-control", "No-cache");
Response.setheader ("Pragma", "No-cache");
Write the picture to the browser imageio.write (bi, "JPG", Response.getoutputstream ()); /** * Set Background color * * @param g */private void SetBackground (Graphics g) {//Set color G.setcolor (color.white);//Fill Area G.fillrect
(0, 0, WIDTH, HEIGHT); /** * Set Border * * @param g/private void SetBorder (Graphics g) {//Set 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 number of lines and draw line 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 Kanji * * @param g * @return/private String Drawrandomnum (graphics2d g) {StringBuffer sb = new StringBuffer (
);
Set color G.setcolor (color.red);
Sets the font g.setfont (new font ("Arial", 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\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\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\u8001\u4e2d\u5341\u4ece\u81ea\u9762\u524d\u5934\u9053\ U5b83\u540e\u7136\u8d70\u5f88\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\u5fc3\u6218\u4e8c\u95ee\u4f46\u8eab\u65b9\u5b9e\u5403\u505a\u53eb\u5f53\ u4f4f\u542c\u9769\u6253\u5462\u771f\u5168\u624d\u56db\u5df2\u6240\u654c\u4e4b\u6700\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\u98de\ 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\u53d8\u793e\u4f3c\u58eb\u8005\u5e72\ U77f3\u6ee1\u65e5\u51b3\u767e\u539f\u62ff\u7fa4\u7a76\u5404\u516d\u672c\u601d\u89e3\u7acb\u6cb3\u6751\u516b\ U96be\u65e9\u8bba\u5417\u6839\u5171\u8ba9\u76f8\u7814\u4eca\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\u52a0\u811a\u7d27\u7231\ U7b49\u4e60\u9635\u6015\u6708\u9752\u534a\u706b\u6cd5\u9898\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\u63d0\u786e\u8fd1\u4eae\u8f7b\u8bb2\u519c\u53e4\u9ed1\u544a\u754c\u62c9\u540d\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\u5f62\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\u653f\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\u7ae0\u5e2e\u5566\u53d7\u7cfb\u4ee4\u8df3\u975e\ U4f55\u725b\u53d6\u5165\u5cb8\u6562\u6389\u5ffd\u79cd\u88c5\u9876\u6025\u6797\u505c\u606f\u53e5\u533a\u8863\
U822c\u62a5\u53f6\u538b\u6162\u53d4\u80cc\u7ec6 ";
int x = 5; Control word for (int i = 0; i < 4; i++) {//Set font rotation angle int degree = new Random (). Nextint ()% 30;//intercept kanji String ch = base.ch
Arat (New Random (). Nextint (Base.length ())) + "";
Sb.append (CH);
Forward 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 ();

 }
}

Above is the Java generated picture verification code, Chinese character verification Code related code, I hope to help you learn.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.