These files were already out of step with the project's Prettier config before this branch of work; running `pnpm format` finally swept them up. No semantic changes. Kept separate from the functional commits so the reformatting does not bury them in diff noise.
87 lines
2.9 KiB
Plaintext
87 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.
|