zoukankan      html  css  js  c++  java
  • 验证码的旋转与放缩代码

    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"));
    }

    }

  • 相关阅读:
    Markdown简单介绍和基本的语法
    Unsupported major.minor version 51.0问题的解决
    Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能
    kqueue演示样例
    华为离职副总裁徐家骏的工作感悟
    菜鸟之路-浅谈设计模式之单例设计模式
    【gsl】生成随机数
    【C语言】pragma
    【数据结构】二叉堆
    【编程题目】查找最小的 k 个元素
  • 原文地址:https://www.cnblogs.com/1314wamm/p/5908679.html
Copyright © 2011-2022 走看看