最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java仿Servlet生成驗(yàn)證碼實(shí)例詳解

 更新時(shí)間:2017年04月27日 10:11:46   投稿:lqh  
這篇文章主要介紹了java仿Servlet生成驗(yàn)證碼實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

java仿Servlet生成驗(yàn)證碼實(shí)例詳解

實(shí)現(xiàn)原理:使用BufferedImage對(duì)象的Graphics來進(jìn)行繪制,然后輸出成一張圖片進(jìn)行保存

實(shí)現(xiàn)代碼及詳解:

public class validateCode{

  private static Random rand = new Random();

  public static void main(String[] args){
    int val1 = rand.nextInt(9);
    int val2 = rand.nextInt(9);
    int val3 = rand.nextInt(9);
    int val4 = rand.nextInt(9);
    String val = val1 + " " + val2 + " " + val3 + " " + val4'
    BufferedImage buf = drawImage(val);
    //將最終的圖片保存到D://cheng.png下
    ImageIO.write(buf,"png",new File("D://cheng.png");
  }

  public static BufferedImage drawImage(String code){
    int height = 30;
    int width = 60;
    BufferedImage buf = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
    Graphics2D gs = buf.createGraphics();
    gs.setBackground(Color.black);
    gs.drawRect(0,0,width,height); 

    //繪制隨機(jī)干擾線
    int total = 100;
    drawRandLine(gs,total);

    //繪制驗(yàn)證碼
    Font font = new Font("行楷",Font.BOLD,20);
    gs.setFont(font);
    gs.setColor(getRandColor(155,255));
    gs.drawString(code,5,20);

    return buf;
  }

  public static void drawRandLine(Graphics2D gs,int total){

    for(int i=0; i<total; i++){
      int x1 = rand.nextInt(width);
      int x2 = rand.nextInt(width);
      int y1 = rand.nextInt(height);
      int y2 = rand.nextInt(height);
      //設(shè)置隨機(jī)顏色
      gs.setColor(getRandColor(0,155));
      gs.drawLine(x1,y1,x2,y2);
    }  
  }

  public static Color getRandColor(int from,int to){

    int r = from + rand.nextInt(to-from);
    int g = from + rand.nextInt(to-from);
    int b = from + rand.nextInt(to-from);
    return new Color(r,g,b);  
  }

最終實(shí)現(xiàn)效果圖

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • java使用swt顯示圖片示例分享

    java使用swt顯示圖片示例分享

    這篇文章主要介紹了java使用swt顯示圖片示例,修改后就可變?yōu)閳D片瀏覽器,需要的朋友可以參考下
    2014-02-02
  • SpringCloud修改Feign日志記錄級(jí)別過程淺析

    SpringCloud修改Feign日志記錄級(jí)別過程淺析

    OpenFeign源于Netflix的Feign,是http通信的客戶端。屏蔽了網(wǎng)絡(luò)通信的細(xì)節(jié),直接面向接口的方式開發(fā),讓開發(fā)者感知不到網(wǎng)絡(luò)通信細(xì)節(jié)。所有遠(yuǎn)程調(diào)用,都像調(diào)用本地方法一樣完成
    2023-02-02
  • Springboot在IDEA熱部署的配置方法

    Springboot在IDEA熱部署的配置方法

    這篇文章主要介紹了Springboot在IDEA熱部署的配置方法,給大家補(bǔ)充介紹了Intellij IDEA 4種配置熱部署的方法,需要的朋友可以參考下
    2018-04-04
  • 手把手帶你用java搞定青蛙跳臺(tái)階

    手把手帶你用java搞定青蛙跳臺(tái)階

    這篇文章主要給大家介紹了關(guān)于Java青蛙跳臺(tái)階問題的解決思路與代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Spring Cloud Zuul路由規(guī)則動(dòng)態(tài)更新解析

    Spring Cloud Zuul路由規(guī)則動(dòng)態(tài)更新解析

    這篇文章主要介紹了Spring Cloud Zuul路由規(guī)則動(dòng)態(tài)更新解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 使用java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤問題及解決方案

    使用java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤問題及解決方案

    這篇文章主要介紹了使用java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot集成Lettuce客戶端操作Redis的實(shí)現(xiàn)

    SpringBoot集成Lettuce客戶端操作Redis的實(shí)現(xiàn)

    本文主要介紹了SpringBoot集成Lettuce客戶端操作Redis的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 從字符串中截取等長字節(jié)的Java代碼

    從字符串中截取等長字節(jié)的Java代碼

    這篇文章主要介紹了從字符串中截取等長字節(jié)的Java代碼,有需要的朋友可以參考一下
    2013-12-12
  • Mybatis執(zhí)行SQL時(shí)多了一個(gè)limit的問題及解決方法

    Mybatis執(zhí)行SQL時(shí)多了一個(gè)limit的問題及解決方法

    這篇文章主要介紹了Mybatis執(zhí)行SQL時(shí)多了一個(gè)limit的問題及解決方法,Mybatis攔截器方法識(shí)別到配置中參數(shù)supportMethodsArguments 為ture時(shí)會(huì)分頁處理,本文結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Spring中@Async注解執(zhí)行異步任務(wù)的方法

    Spring中@Async注解執(zhí)行異步任務(wù)的方法

    在業(yè)務(wù)處理中,有些業(yè)務(wù)使用異步的方式更為合理,這篇文章主要介紹了Spring中@Async注解執(zhí)行異步任務(wù)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06

最新評(píng)論

内丘县| 塘沽区| 牙克石市| 辰溪县| 永胜县| 靖安县| 通江县| 甘谷县| 吐鲁番市| 寿阳县| 搜索| 台南市| 密云县| 青浦区| 淅川县| 肥城市| 中牟县| 嘉禾县| 兴宁市| 建瓯市| 万年县| 克什克腾旗| 商城县| 阳山县| 成安县| 得荣县| 方城县| 江北区| 锡林浩特市| 西林县| 长海县| 鄂温| 丘北县| 惠安县| 屏边| 高要市| 道孚县| 肇源县| 华容县| 英吉沙县| 通化市|