⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sheargimpyrenderer.java

📁 一个为 Java/J2EE生成的最简化CAPTCHA的框架
💻 JAVA
字号:
package nl.captcha.gimpy;import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.security.SecureRandom;import java.util.Random;public class ShearGimpyRenderer implements GimpyRenderer {    private final Random _gen = new SecureRandom();    private final Color _color;    public ShearGimpyRenderer() {        this(Color.GRAY);    }    public ShearGimpyRenderer(Color color) {        _color = color;    }    @Override    public void gimp(BufferedImage bi) {        Graphics2D g = bi.createGraphics();        shearX(g, bi.getWidth(), bi.getHeight());        shearY(g, bi.getWidth(), bi.getHeight());        g.dispose();    }    private void shearX(Graphics2D g, int w1, int h1) {        int period = _gen.nextInt(10) + 5;        boolean borderGap = true;        int frames = 15;        int phase = _gen.nextInt(5) + 2;        for (int i = 0; i < h1; i++) {            double d = (period >> 1)                    * Math.sin((double) i / (double) period                            + (6.2831853071795862D * phase) / frames);            g.copyArea(0, i, w1, 1, (int) d, 0);            if (borderGap) {                g.setColor(_color);                g.drawLine((int) d, i, 0, i);                g.drawLine((int) d + w1, i, w1, i);            }        }    }    private void shearY(Graphics2D g, int w1, int h1) {        int period = _gen.nextInt(30) + 10; // 50;        boolean borderGap = true;        int frames = 15;        int phase = 7;        for (int i = 0; i < w1; i++) {            double d = (period >> 1)                    * Math.sin((float) i / period                            + (6.2831853071795862D * phase) / frames);            g.copyArea(i, 0, 1, h1, 0, (int) d);            if (borderGap) {                g.setColor(_color);                g.drawLine(i, (int) d, i, 0);                g.drawLine(i, (int) d + h1, i, h1);            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -