PHPackages                             npetrovski/php5-image - 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. [Image &amp; Media](/categories/media)
4. /
5. npetrovski/php5-image

AbandonedArchivedLibrary[Image &amp; Media](/categories/media)

npetrovski/php5-image
=====================

Object-oriented image handling and manipulation library

v2.0.3(10y ago)143.6k1MITPHPPHP &gt;=5.3.0

Since Apr 16Pushed 10y ago1 watchersCompare

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

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

PHP5 Image
==========

[](#php5-image)

[![Build status](https://camo.githubusercontent.com/fd4b32442658134d5cada1a33b22b92aba8dfd80b188d05c2fbe8235caf77558/68747470733a2f2f7472617669732d63692e6f72672f6e706574726f76736b692f706870352d696d6167652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/npetrovski/php5-image)

PHP5 Image is a full **object-oriented library for an image manipulation** by PHP and GD2. No imagick extension is required.

The project currently provides readers for PNG, JPEG, GIF, PSD, ICO image-file types, and outputs all GD2-supported types.

Requirements
------------

[](#requirements)

- PHP &gt;=5.3
- GD2 extension

Examples:
---------

[](#examples)

[![php5-image](/php5-image.png "Title")](/php5-image.png)

### Canvas Size

[](#canvas-size)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/beach.jpg');

$image->fx('resize', 200)
      ->fx('crop', 0, 86)
      ->draw('border', 2, '000000')
      ->fx('canvassize', 0, 10, 10, 0)
      ->draw('watermark', dirname(__FILE__) . '/source/button.png', 'br');

$image->imagePng();
```

### Captcha

[](#captcha)

```
$image = new Image\Canvas();
$image->createImageTrueColor(206, 96, "FF0000");

// Primitives
$background = new Image\Draw\Primitive("FFFFFF", 20);
$background->line(20, 20, 80, 80)
           ->rectangle(100, 20, 180, 80)
           ->filledRectangle(150, 10, 170, 30)
           ->ellipse(10, 50, 20, 60)
           ->filledEllipse(140, 60, 160, 80)
           ->circle(200, 50, 30)
           ->spiral(100, 50, 100, 10);

$image->attach($background);

// Captcha text
$captcha = new Image\Draw\Captcha("captcha");

$captcha->addTTFFont(dirname(__FILE__) . '/../fonts/blambotcustom.ttf');
$captcha->addTTFFont(dirname(__FILE__) . '/../fonts/adventure.ttf');
$captcha->addTTFFont(dirname(__FILE__) . '/../fonts/bluehigh.ttf');

$captcha->setTextSize(20)
        ->setSizeRandom(20)
        ->setAngleRandom(60)
        ->setTextSpacing(5)
        ->setTextColor("ffff00");

$image->attach($captcha);

// Add border
$image->draw('border', 1, 'bbbbbb')
      ->draw('border', 1, 'ffffff');

$image->imagePng();
```

### Colorize

[](#colorize)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/red.jpg');

$image->fx('resize', 196)
      ->fx('crop', 0, 100)
      ->fx('colorize', 'ff0000', '00ff00');

$image->imagePng();
```

### Face Detector

[](#face-detector)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/portrait.jpg');

$image->fx('resize', 198)
      ->fx('crop', 196, 96)
      ->helper('facedetector')
      ->apply()
      ->drawFaceRectangle();

$image->imagePng();
```

### Filters

[](#filters)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/face.jpg');

$image->fx('resize', 198)
      ->fx('crop', 124, 94)
      ->fx('filter', IMG_FILTER_NEGATE)
      ->draw('border', 1, 'FFFFFF')
      ->draw('border', 1, 'BBBBBB')
      ->draw('border', 1, 'FFFFFF');

$image->imagePng();
```

### Gaussian Blur

[](#gaussian-blur)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/seats.jpg');

$image->fx('resize', 250)
      ->fx('crop', 206, 96)
      ->fx('gaussian')
      ->draw('border', 1, 'BBBBBB')
      ->draw('border', 1, 'FFFFFF');

$image->imagePng();
```

### ICO Parser

[](#ico-parser)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/iPodnanoorange.ico');

$image->fx('resize', 196)
      ->fx('crop', 0, 100);

$image->imagePng();
```

### Information Bar

[](#information-bar)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/road.jpg');

$image->fx('resize', 250)
        ->fx('crop', 196, 70)
        ->draw('infobar', '[Filename]', 't', 'c', 'FFFFBB', '000000')
        ->fx('corners', 10, 10)
        ->draw('border', 5, '000000')
        ->fx('corners', 12, 12);

$image->imagePng();
```

### Jitter

[](#jitter)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/planes.jpg');

$image->fx('resize', 250)
        ->fx('crop', 206, 96)
        ->fx('jitter')
        ->draw('border', 1, 'BBBBBB')
        ->draw('border', 1, 'FFFFFF');

$image->imagePng();
```

### Layers

[](#layers)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/rose.jpg');
$layer = new Image\Canvas(dirname(__FILE__) . '/source/cherry.png');

$image->fx('corners', 15, 15)
      ->fx('resize', 198)
      ->fx('crop', 196, 96)
      ->draw('layer', $layer, 0, 0, false);

$image->imagePng();
```

### PSD Parser

[](#psd-parser)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/iPod.psd');

$image->fx('resize', 196)
      ->fx('crop', 0, 100);

$image->imagePng();
```

### QR Code

[](#qr-code)

```
$image = new Image\Canvas(250, 100);
$image->draw('qrcode', 'https://github.com/npetrovski/php5-image');

$image->imagePng();
```

### Border + Corners

[](#border--corners)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/icecream.jpg');

$image->fx('resize', 196)
      ->fx('crop', 166, 70)
      ->fx('corners', 15, 15)
      ->draw('border', 5, 'FF0000')
      ->fx('corners', 17, 17)
      ->draw('border', 5, 'FF8888')
      ->fx('corners', 20, 20)
      ->draw('border', 5, 'FFCCCC')
      ->fx('corners', 22, 22);

$image->imagePng();
```

### Ripple

[](#ripple)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/field.jpg');

$image->fx('resize', 200)
      ->fx('crop', 0, 90)
      ->fx('ripple')
      ->fx('corners', 13, 13)
      ->draw('border', 5, 'FFFFFF')
      ->fx('corners', 15, 15);

$image->imagePng();
```

### Scanlines

[](#scanlines)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/quay.jpg');

$image->fx('resize', 250)
      ->fx('crop', 206, 100)
      ->draw('scanline', 2, 'FFFFFF', 120, 110)
      ->fx('corners', 15, 15);

$image->imagePng();
```

### Sobel Edge Detection

[](#sobel-edge-detection)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/flowers.jpg');

$image->fx('resize', 196)
      ->fx('crop', 0, 100)
      ->fx('sobel');

$image->imagePng();
```

### Black and White

[](#black-and-white)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/car.jpg');

$image->fx('resize', 198)
      ->fx('crop', 156, 60)
      ->fx('blackandwhite')
      ->draw('border', 2, '000000')
      ->draw('border', 1, 'ffffff')
      ->draw('border', 17, '000000');

$image->imagePng();
```

### Tiled Watermark

[](#tiled-watermark)

```
$image = new Image_Image(dirname(__FILE__) . '/source/stamens.jpg');

$image->attach(new Image_Fx_Resize(196));
$image->attach(new Image_Fx_Crop(0,96));

$watermark = new Image_Draw_Watermark(new Image_Image(dirname(__FILE__) . '/source/watermark.png'));

$watermark->setPosition("tile");
$image->attach($watermark);
$image->attach(new Image_Draw_Border(2, "000000"));
$image->imagePng();
```

### True Shadow

[](#true-shadow)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/reflect.jpg');

$image->fx('resize', 206)
      ->fx('crop', 194, 88)
      ->fx('corners', 15, 15)
      ->draw('trueshadow', 5, "444444", array(1, 1, 1, 2, 2, 4, 4, 8, 4, 4, 2, 2, 1, 1, 1));

$image->imagePng();
```

### Vanilla

[](#vanilla)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/hotel.jpg');

$image->fx('resize', 200)
      ->fx('crop', 0, 94)
      ->draw('border', 1, 'FFFFFF')
      ->draw('border', 1, 'BBBBBB')
      ->draw('border', 1, 'FFFFFF');

$image->imagePng();
```

### Trim

[](#trim)

```
$image = new Image\Canvas(200, 100, 'CCCCDD', 60);

$star = new Image\Canvas(dirname(__FILE__) . '/source/star.png');
$star->draw('border', 1, '000000');

$trim = new Image\Canvas(dirname(__FILE__) . '/source/star.png');
$trim->fx('trim')
     ->draw('border', 1, '000000');

$image->fx('colorize', 'ff0000')
      ->draw('layer', $star, 20, 20)
      ->draw('layer', $trim, 100, 20);

$image->imagePng();
```

### Vignette

[](#vignette)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/balloons.jpg');

$image->fx('resize', 250)
      ->fx('crop', 206, 100)
      ->fx('vignette', new Image\Canvas(dirname(__FILE__) . '/source/vignette.png'));

$image->imagePng();
```

### Rotate &amp; Flip

[](#rotate--flip)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/apple.png');

$image->fx('rotate', 35)
      ->fx('flip', true, true)
      ->fx('resize', 100);

$image->imagePng();
```

### Watermark

[](#watermark)

```
$image = new Image\Canvas(dirname(__FILE__) . '/source/boat.jpg');
$image->fx('resize', 198)
      ->fx('crop', 196, 96);

$wm_image = new Image\Canvas(dirname(__FILE__) . '/source/phpimage.png');
$wm_image->mid_handle = false;

$watermark = new Image\Draw\Watermark($wm_image);
$watermark->setPosition(0, 60);

$image->attach($watermark);
$image->draw('border', 2, "000000");

$image->imagePng();
```

Contributing
------------

[](#contributing)

Contributions are welcome. Please note the following guidelines before submiting your pull request.

- Follow [PSR-2](http://www.php-fig.org/psr/psr-2/) coding standards.
- Write tests for new functions and added features

License
-------

[](#license)

This library is licensed under the [MIT License](http://opensource.org/licenses/MIT).

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.4% 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 ~45 days

Total

2

Last Release

4005d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/97e3b135056fd3d94bed2d34fcc66acf1bcc4ba16d377b1d08ee619eb31ac9fe?d=identicon)[npetrovski](/maintainers/npetrovski)

---

Top Contributors

[![npetrovski](https://avatars.githubusercontent.com/u/902315?v=4)](https://github.com/npetrovski "npetrovski (34 commits)")[![ckrack](https://avatars.githubusercontent.com/u/154858?v=4)](https://github.com/ckrack "ckrack (2 commits)")

---

Tags

thumbnailimagegdwatermarkcaptchafilterstrimrotateinformationcolorizetilesBlurrippleicovanillaflipCanvassizeBlack and WhiteBorderCornerVignetteShadowDrop ShadowScanlinesGaussianJitterSobel Edge DetectionNegateBrightnessLayersFace DetectorPSD

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/npetrovski-php5-image/health.svg)

```
[![Health](https://phpackages.com/badges/npetrovski-php5-image/health.svg)](https://phpackages.com/packages/npetrovski-php5-image)
```

###  Alternatives

[intervention/image

PHP Image Processing

14.3k194.3M2.2k](/packages/intervention-image)[sybio/image-workshop

Powerful PHP class using GD library to work easily with images including layer notion (like Photoshop or GIMP)

860918.1k11](/packages/sybio-image-workshop)[jbzoo/image

A PHP class that simplifies working with images

171126.9k3](/packages/jbzoo-image)[intervention/image-laravel

Laravel Integration of Intervention Image

1536.5M102](/packages/intervention-image-laravel)[folklore/image

Image manipulation library for Laravel 5 based on Imagine and inspired by Croppa for easy url based manipulation

270248.2k5](/packages/folklore-image)[stefangabos/zebra_image

A single-file, lightweight PHP library designed for efficient image manipulation featuring methods for modifying images and applying filters

141110.4k6](/packages/stefangabos-zebra-image)

PHPackages © 2026

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