PHPackages                             visavi/captcha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. visavi/captcha

ActiveLibrary

visavi/captcha
==============

Animated captcha generator

v3.0.0(4y ago)12.2k12MITPHPPHP &gt;=8.0.0

Since Sep 15Pushed 4y ago1 watchersCompare

[ Source](https://github.com/visavi/captcha)[ Packagist](https://packagist.org/packages/visavi/captcha)[ Docs](https://visavi.net)[ RSS](/packages/visavi-captcha/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)DependenciesVersions (6)Used By (2)

Captcha
=======

[](#captcha)

[![Latest Stable Version](https://camo.githubusercontent.com/79c7a7cc3d47a92bfa2cb6ecfd828b0235cb9e015f0f9b51b2d4a02ab33080da/68747470733a2f2f706f7365722e707567782e6f72672f7669736176692f636170746368612f762f737461626c65)](https://packagist.org/packages/visavi/captcha)[![Total Downloads](https://camo.githubusercontent.com/f438805227a14cd1e3539939daf00c0f9ec789c5beaaad1ec838a7c2ecc10d32/68747470733a2f2f706f7365722e707567782e6f72672f7669736176692f636170746368612f646f776e6c6f616473)](https://packagist.org/packages/visavi/captcha)[![Latest Unstable Version](https://camo.githubusercontent.com/c9dc2643636b2daa9842f24e5e04ca8af52d43a959f777f22646c8f9d035723a/68747470733a2f2f706f7365722e707567782e6f72672f7669736176692f636170746368612f762f756e737461626c65)](https://packagist.org/packages/visavi/captcha)[![License](https://camo.githubusercontent.com/2557a3e5464ce2132be9cf0602d8082081e346a10c77eb37215200b7af416843/68747470733a2f2f706f7365722e707567782e6f72672f7669736176692f636170746368612f6c6963656e7365)](https://packagist.org/packages/visavi/captcha)

Examples
--------

[](#examples)

### Default

[](#default)

[![example1](examples/captcha1.gif)](examples/captcha1.gif)[![example2](examples/captcha2.gif)](examples/captcha2.gif)[![example3](examples/captcha3.gif)](examples/captcha3.gif)

### Advanced

[](#advanced)

[![example4](examples/captcha4.gif)](examples/captcha4.gif)[![example5](examples/captcha5.gif)](examples/captcha5.gif)[![example6](examples/captcha6.gif)](examples/captcha6.gif)

### Mini

[](#mini)

[![example7](examples/captcha7.gif)](examples/captcha7.gif)[![example8](examples/captcha8.gif)](examples/captcha8.gif)[![example9](examples/captcha9.gif)](examples/captcha9.gif)

Methods
-------

[](#methods)

- **getPhrase** - Get phrase
- **setWidth** - Image width, px (Optional, default 150px)
- **setHeight** - Image height, px (Optional, default 40px)
- **setTextColor** - Text color (Optional)
- **setBackgroundColor** - Background color (Optional)
- **setFont** - Font path (Optional)
- **setWindowWidth** - Window width, px (Optional, default 75px)
- **setPixelPerFrame** - Window shift per frame, px (Optional, default 15px)
- **setDelayBetweenFrames** - Time between frames, ms) (Optional, default 20ms)

### Code default

[](#code-default)

```
header('Content-Type: image/gif');

$captcha = new CaptchaBuilder();
$_SESSION['captcha'] = $captcha->getPhrase();

return $captcha->render();
```

### Code advanced

[](#code-advanced)

```
header('Content-Type: image/gif');

$phrase = new PhraseBuilder();
$phrase = $phrase->getPhrase(5, '1234567890');

$captcha = new CaptchaBuilder($phrase);
$captcha
    ->setWidth(150)
    ->setHeight(50)
    ->setTextColor(0, 0, 0)
    ->setBackgroundColor(255, 255, 255)
    ->setFont('/path-to-font')
    ->setWindowWidth(60)
    ->setPixelPerFrame(15)
    ->setDelayBetweenFrames(20);

$_SESSION['captcha'] = $captcha->getPhrase();

return $captcha->render();
```

Installation
------------

[](#installation)

```
composer require visavi/captcha

```

License
-------

[](#license)

The class is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT)

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~49 days

Total

5

Last Release

1511d ago

Major Versions

v1.2.0 → v2.0.02021-09-20

v2.0.0 → v3.0.02022-03-29

PHP version history (2 changes)v1.0.0PHP &gt;=7.3.0

v3.0.0PHP &gt;=8.0.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/826831?v=4)[Alexander Grigorev](/maintainers/visavi)[@visavi](https://github.com/visavi)

---

Top Contributors

[![visavi](https://avatars.githubusercontent.com/u/826831?v=4)](https://github.com/visavi "visavi (8 commits)")

---

Tags

captchaantispamantibot

### Embed Badge

![Health badge](/badges/visavi-captcha/health.svg)

```
[![Health](https://phpackages.com/badges/visavi-captcha/health.svg)](https://phpackages.com/packages/visavi-captcha)
```

###  Alternatives

[google/recaptcha

Client library for reCAPTCHA, a free service that protects websites from spam and abuse.

3.6k89.1M222](/packages/google-recaptcha)[lubosdz/yii2-captcha-extended

Extended captcha code generator for Yii2 framework with configurable obfuscation level

1117.4k](/packages/lubosdz-yii2-captcha-extended)[captcha-com/cakephp-captcha

CakePHP Captcha Plugin -- BotDetect PHP CAPTCHA generator integration for the CakePHP framework.

1313.0k](/packages/captcha-com-cakephp-captcha)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
