Files
WRNexusJS/docs/IMAGE-STYLES.md
2026-07-27 12:42:18 +05:30

48 lines
2.5 KiB
Markdown

# Generated CAPTCHA image styles
The self-hosted and managed engines support 18 concrete renderers plus `random`.
![Renderer gallery](./image-style-gallery.png)
## Concrete styles
| Style | Main effect | Suggested use |
| -------------- | ----------------------------------------- | ------------------------- |
| `classic` | Dots, crossing lines, glyph jitter | General default pool |
| `collision` | Overlapping coloured glyphs and bars | Medium or hard challenges |
| `snow` | Dense snow-like speckles | Medium challenges |
| `corrosion` | Eroded glyph patches and rust-like noise | Medium or hard challenges |
| `spiderweb` | Connected web lines and nodes | Medium challenges |
| `cross-shadow` | Multi-colour offset shadows | Medium challenges |
| `split` | Horizontally shifted image bands | Medium or hard challenges |
| `split2` | Vertically shifted image strips | Medium or hard challenges |
| `cut` | Slashed and interrupted character strokes | Medium challenges |
| `darts` | Radial lines and target rings | Medium challenges |
| `distortion` | Two-axis sinusoidal distortion | Medium or hard challenges |
| `stitch` | Dashed seams and cross stitches | Easy or medium challenges |
| `striped` | Diagonal and horizontal stripes | Easy or medium challenges |
| `wave` | Strong wave transformation | Medium or hard challenges |
| `grid-noise` | Grid lines and translucent cells | Easy or medium challenges |
| `scribble` | Random-walk line scribbles | Medium challenges |
| `pixel` | Pixel blocks and shifted regions | Medium challenges |
| `broken-lines` | Missing stroke segments and fragments | Medium or hard challenges |
## Random pool
```wrn
<Captcha
type="alphanumeric"
action="signup"
imageStyle="random"
allowedStyles="classic,snow,spiderweb,distortion,wave"
excludedStyles="collision"
disturbance="50"
/>
```
The engine resolves one concrete style per challenge. Refreshing creates a new challenge and selects again. Challenge metadata contains `imageStyle`, `requestedImageStyle`, and `imageStylePool`; it never contains the answer.
## Accessibility
Keep `showAudio="true"` or provide another non-visual path. High disturbance and hard renderers should not be the only completion option.