6449bc0e87
Add English and Chinese documentation for onixbyte/captcha library, including overview (index.mdx) and full API reference (api.md).
90 lines
2.9 KiB
Plaintext
90 lines
2.9 KiB
Plaintext
---
|
|
title: Captcha
|
|
---
|
|
|
|
import { Tabs, Tab } from "@rspress/core/theme"
|
|
|
|
## Introduction
|
|
|
|
Captcha is a Java library for generating CAPTCHA images. This project is a spiritual successor to Google's Kaptcha, modernised for contemporary development practices.
|
|
|
|
With Captcha, you can easily generate customisable CAPTCHA images with various distortion effects, noise, and background options to integrate into your Java applications.
|
|
|
|
## Features
|
|
|
|
- **Easy Integration** — Simple builder-based API for quick setup and configuration.
|
|
- **Customisable CAPTCHA Generation** — Configure text length, character sets, font styles, and colours.
|
|
- **Multiple Distortion Effects** — Choose from Water Ripple, Fish Eye, and Shadow effects.
|
|
- **Configurable Noise** — Add noise lines with custom colours, or disable noise entirely.
|
|
- **Gradient Backgrounds** — Customisable gradient background colours.
|
|
- **Clean, Modern Codebase** — Well-documented, type-safe, and easy to extend.
|
|
|
|
## Installation
|
|
|
|
<Tabs>
|
|
<Tab label="Gradle with Kotlin DSL">
|
|
```kotlin title="build.gradle.kts"
|
|
dependencies {
|
|
implementation("com.onixbyte:captcha:1.0.0")
|
|
}
|
|
```
|
|
</Tab>
|
|
<Tab label="Maven">
|
|
```xml title="pom.xml"
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.onixbyte</groupId>
|
|
<artifactId>captcha</artifactId>
|
|
<version>1.0.0</version>
|
|
</dependency>
|
|
</dependencies>
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Quick Start
|
|
|
|
```java
|
|
import com.onixbyte.captcha.Producer;
|
|
import com.onixbyte.captcha.background.BackgroundProducer;
|
|
import com.onixbyte.captcha.background.impl.DefaultBackgroundProducer;
|
|
import com.onixbyte.captcha.gimpy.GimpyEngine;
|
|
import com.onixbyte.captcha.gimpy.impl.WaterRipple;
|
|
import com.onixbyte.captcha.impl.DefaultCaptchaProducer;
|
|
import com.onixbyte.captcha.noise.NoiseProducer;
|
|
import com.onixbyte.captcha.noise.impl.DefaultNoiseProducer;
|
|
import com.onixbyte.captcha.text.TextProducer;
|
|
import com.onixbyte.captcha.text.WordRenderer;
|
|
import com.onixbyte.captcha.text.impl.DefaultTextProducer;
|
|
import com.onixbyte.captcha.text.impl.DefaultWordRenderer;
|
|
|
|
import javax.imageio.ImageIO;
|
|
import java.awt.*;
|
|
import java.awt.image.BufferedImage;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
public class CaptchaExample {
|
|
|
|
public static void main(String[] args) throws IOException {
|
|
// Create a CAPTCHA producer with default configurations
|
|
Producer captcha = DefaultCaptchaProducer.builder().build();
|
|
|
|
// Generate text and create the image
|
|
String captchaText = captcha.createText();
|
|
BufferedImage captchaImage = captcha.createImage(captchaText);
|
|
|
|
// Save the image to a file
|
|
ImageIO.write(captchaImage, "png", new File("captcha.png"));
|
|
|
|
System.out.println("CAPTCHA text: " + captchaText);
|
|
}
|
|
}
|
|
```
|
|
|
|
This generates a CAPTCHA image with a 6-character random text and saves it as a PNG file.
|
|
|
|
## License
|
|
|
|
Captcha is open-source software released under the MIT License.
|