Heim > Java > JavaErste Schritte > Java implementiert dynamischen Bildverifizierungscode

Java implementiert dynamischen Bildverifizierungscode

王林
Freigeben: 2020-01-09 17:21:48
nach vorne
2626 Leute haben es durchsucht

Java implementiert dynamischen Bildverifizierungscode

Zweck:

Böswillige Formularregistrierung verhindern

Bestätigungscodebild generieren

1. Definieren Sie Breite und Höhe

int width = 100;
int height = 50;
Nach dem Login kopieren

2. Verwenden Sie BufferedImage, um Bilder im Speicher zu generieren

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Nach dem Login kopieren

. Zeichnen Sie Hintergrund und Ränder

Graphics g = image.getGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, width, height);
g.setColor(Color.BLACK);
g.drawRect(0, 0, width - 1, height - 1);
Nach dem Login kopieren

: Java-Video-Tutorial)

4. Erstellen Sie einen Zufallszeichensatz und ein Zufallszahlenobjekt

//字符集
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgjijklmnopqrstuvwxyz";

//随机数
Random ran = new Random();
Nach dem Login kopieren

Erstellen Sie eine Methode zur zufälligen Farbgenerierung

private Color getRandomColor(Random random) {
    //获取随机颜色
    int colorIndex = random.nextInt(3);
    switch (colorIndex) {
        case 0:
            return Color.BLUE;
        case 1:
            return Color.GREEN;
        case 2:
            return Color.RED;
        case 3:
            return Color.YELLOW;
        default:
            return Color.MAGENTA;
    }
}
Nach dem Login kopieren

6. Verifizierungscodezeichen zeichnen

//绘制验证码
for (int i = 0; i < 4; i++) {
    //获取随机字符
    int index = ran.nextInt(str.length());
    char ch = str.charAt(index);
    //获取随机色
    Color randomColor = getRandomColor(ran);
    g.setColor(randomColor);
    //设置字体
    Font font = new Font("宋体", Font.BOLD, height / 2);
    g.setFont(font);
    //写入验证码
    g.drawString(ch + "", (i == 0) ? width / 4 * i + 2 : width / 4 * i, height - height / 4);
}
Nach dem Login kopieren

7. Interferenzlinien zeichnen

//干扰线
for (int i = 0; i < 10; i++) {
    int x1 = ran.nextInt(width);
    int x2 = ran.nextInt(width);
    int y1 = ran.nextInt(height);
    int y2 = ran.nextInt(height);
    Color randomColor = getRandomColor(ran);
    g.setColor(randomColor);
    g.drawLine(x1, x2, y1, y2);
}
Nach dem Login kopieren

8. Verwenden Sie ImageIO, um Bilder auszugeben

Java implementiert dynamischen Bildverifizierungscode

um einen Aktualisierungseffekt zu erzielen

1. Erstellen Sie eine neue HTML-Seite

2. Verwenden Sie js, um die Bilder anzuzeigen Aktualisierungseffekt

ImageIO.write(image, "jpg", resp.getOutputStream());
Nach dem Login kopieren
Endlich Rendering:

Empfohlene verwandte Artikel und Tutorials: Java implementiert dynamischen BildverifizierungscodeJava-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonJava implementiert dynamischen Bildverifizierungscode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage