• 验证码的旋转与放缩代码


    public void demo2() throws IOException {
    int w = 60;
    int h = 30;
    BufferedImage img = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );
    Graphics g = img.getGraphics();

    //背景
    g.setColor(Color.WHITE);
    g.fillRect(0, 0, w, h);
    //字体
    g.setFont(new Font("aa", Font.BOLD, 18));
    //输出验证码: 4个0~9之间的随机整数
    Random r = new Random();
    for(int i=0;i<4;i++){
    int a = r.nextInt(10);
    int y = 10+r.nextInt(20);//上下位置:10~30
    Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
    g.setColor(c);
    g.drawString(""+a, i*16, y);
    }
    //画干扰线
    for(int i=0;i<20;i++){
    Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
    g.setColor(c);
    g.drawLine(r.nextInt(w), r.nextInt(h), r.nextInt(w), r.nextInt(h));
    }

    //把图形刷到img对象中
    g.dispose();//相当于IO中的close()方法带动flush()
    ImageIO.write(img, "JPEG", new FileOutputStream("d:/a/hello.jpg"));
    }

    }

    ----------------------------------------------------------------

    @Test
    public void demo3() throws IOException {
    int w = 80;
    int h = 30;
    BufferedImage img = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );
    Graphics g = img.getGraphics();
    Graphics2D g2d = ( Graphics2D )g; // ※※※
    //字体
    g2d.setFont(new Font("aa", Font.BOLD, 18));

    //背景
    g2d.setColor(Color.WHITE);
    g2d.fillRect(0, 0, w, h);


    //输出验证码: 4个0~9之间的随机整数
    Random r = new Random();
    for(int i=0;i<4;i++){
    int a = r.nextInt(10);
    int y = 10+r.nextInt(20);//上下位置:10~30
    Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
    g2d.setColor(c);

    //旋转和放缩※※※
    AffineTransform tx = new AffineTransform();
    tx.rotate(r.nextDouble(), i*16, y-5);
    tx.scale(0.6+r.nextDouble(), 0.6+r.nextDouble());
    g2d.setTransform(tx);

    g2d.drawString(""+a, i*16, y);
    }
    //画干扰线
    for(int i=0;i<10;i++){
    Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
    g2d.setColor(c);
    g2d.drawLine(r.nextInt(w), r.nextInt(h), r.nextInt(w), r.nextInt(h));
    }

    //把图形刷到img对象中
    g2d.dispose();//相当于IO中的close()方法带动flush()
    ImageIO.write(img, "JPEG", new FileOutputStream("d:/a/hello.jpg"));
    }

    }

  • 相关阅读:
    支付宝自研数据库OceanBase全球开放!淘汰甲骨文
    网易邮箱运维工程师岗位应聘笔试题
    Python中的10个常见安全漏洞及修复方法
    关于数据库性能优化的一些误区
    解密程序员招聘内幕
    JSP---第十次作业
    JSP----第九次作业
    JSP---第八次作业
    JSP---第七次作业
    第六次作业---JDBC连接数据库
  • 原文地址:https://www.cnblogs.com/1314wamm/p/5908679.html
Copyright © 2020-2023  润新知