PHPackages                             pixelcraft/pixelcraft - 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. pixelcraft/pixelcraft

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

pixelcraft/pixelcraft
=====================

lightweight PHP library designed for easy image processing using the GD lib

012(5mo ago)06MITPHPPHP &gt;=5.3.28

Since Jan 8Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/nightflyza/PixelCraft)[ Packagist](https://packagist.org/packages/pixelcraft/pixelcraft)[ RSS](/packages/pixelcraft-pixelcraft/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)DependenciesVersions (13)Used By (0)

[![pcraftlogo](https://private-user-images.githubusercontent.com/1496954/294959991-42c91406-dfc4-47dc-8eea-db3106edb009.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzI5NDk1OTk5MS00MmM5MTQwNi1kZmM0LTQ3ZGMtOGVlYS1kYjMxMDZlZGIwMDkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTVlMDk2OGM4MDcwZGQ5MWFmMzBlM2FhZDZmM2FjZjJjOTUzYTg4MDc2NjlhZDZmMWUzZGYxYjM0ZTgxOGViMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.2ycVadDdB_iyNoBBDACC3EA-jgjH3OPyW2vsCPzAglA)](https://private-user-images.githubusercontent.com/1496954/294959991-42c91406-dfc4-47dc-8eea-db3106edb009.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzI5NDk1OTk5MS00MmM5MTQwNi1kZmM0LTQ3ZGMtOGVlYS1kYjMxMDZlZGIwMDkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTVlMDk2OGM4MDcwZGQ5MWFmMzBlM2FhZDZmM2FjZjJjOTUzYTg4MDc2NjlhZDZmMWUzZGYxYjM0ZTgxOGViMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.2ycVadDdB_iyNoBBDACC3EA-jgjH3OPyW2vsCPzAglA)

PixelCraft
==========

[](#pixelcraft)

PixelCraft is a lightweight PHP library designed for easy image processing using the GD lib. With PixelCraft, you can perform basic image operations such as resizing, cropping, drawing of watermarks, and format conversion. The library is characterized by its user-friendly interface and minimal code footprint, allowing for quick and efficient image processing in PHP projects.

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

[](#requirements)

- PHP &gt;=5.3 (PHP 7.4, 8.2, 8.3, 8.4, 8.5 is also compatible)
- GD Library
- Mbstring extension

Few usage examples
------------------

[](#few-usage-examples)

### Minimal example / drawing from scratch

[](#minimal-example--drawing-from-scratch)

```
$pc=new PixelCraft();

$pc->createImage(640, 480);
$pc->fill('yellow');

$pc->addColor('sky', 34, 61, 216);
$pc->drawRectangle(0, 0, 640, 240, 'sky');

$pc->renderImage('png');
```

[![drawfromscratch](https://private-user-images.githubusercontent.com/1496954/408582685-56974d6a-8107-4982-8a45-736f59aac92a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4MjY4NS01Njk3NGQ2YS04MTA3LTQ5ODItOGE0NS03MzZmNTlhYWM5MmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTU4YzM5MDk2NzBhMDljMmFjYzg3Y2U4NzBkZGI2NDlmMjMxYThjMjBlYThiYjgzNTgwNDFkNDM1YTgzMmYwMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.ntCIOyenpLJDWme8IaqO1SrMTOMcPEHhPPxXQp14YJ4)](https://private-user-images.githubusercontent.com/1496954/408582685-56974d6a-8107-4982-8a45-736f59aac92a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4MjY4NS01Njk3NGQ2YS04MTA3LTQ5ODItOGE0NS03MzZmNTlhYWM5MmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTU4YzM5MDk2NzBhMDljMmFjYzg3Y2U4NzBkZGI2NDlmMjMxYThjMjBlYThiYjgzNTgwNDFkNDM1YTgzMmYwMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.ntCIOyenpLJDWme8IaqO1SrMTOMcPEHhPPxXQp14YJ4)

### Image downscale and convertation from PNG to JPEG

[](#image-downscale-and-convertation-from-png-to-jpeg)

```
$pc=new PixelCraft();

$pc->loadImage('someimage.png');
$pc->scale(0.5);

$pc->saveImage('resizedimage.jpg','jpeg');
```

[![downscale](https://private-user-images.githubusercontent.com/1496954/408584268-dd06f439-a795-43ce-8e1e-544e7533f980.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDI2OC1kZDA2ZjQzOS1hNzk1LTQzY2UtOGUxZS01NDRlNzUzM2Y5ODAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWUwOTdhYzkxZDRmZWVhZTQwZmEwYzkwMDIxM2EwZDk5Nzk1YWJlYzI3N2E5NGMwNTA5NWQwZjhjYTM5YmE3MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.lQ9jRDNyRDI2kEi3C_scEvV45Q3o22jcf6-rD-NckKw)](https://private-user-images.githubusercontent.com/1496954/408584268-dd06f439-a795-43ce-8e1e-544e7533f980.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDI2OC1kZDA2ZjQzOS1hNzk1LTQzY2UtOGUxZS01NDRlNzUzM2Y5ODAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWUwOTdhYzkxZDRmZWVhZTQwZmEwYzkwMDIxM2EwZDk5Nzk1YWJlYzI3N2E5NGMwNTA5NWQwZjhjYTM5YmE3MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.lQ9jRDNyRDI2kEi3C_scEvV45Q3o22jcf6-rD-NckKw)

### Adding watermarks to images

[](#adding-watermarks-to-images)

```
$pixelCraft = new PixelCraft();

$pixelCraft->loadImage('yourimage.jpg');
$pixelCraft->loadWatermark('watermark.png');

$watermarkX=$pixelCraft->getImageWidth()-150;
$watermarkY=20;

$pixelCraft->drawWatermark(false,$watermarkX,$watermarkY);

$originalFileType=$pixelCraft->getImageType();
$pixelCraft->renderImage($originalFileType);
```

[![watermark](https://private-user-images.githubusercontent.com/1496954/408584384-7c66903a-1554-46f3-ac40-2cb908c28284.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDM4NC03YzY2OTAzYS0xNTU0LTQ2ZjMtYWM0MC0yY2I5MDhjMjgyODQuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE3YTQwZjczZTA3NThkMDhlNDczMzJiYjhiNzIwODc4NzM4YzZjMjY5OThkNDkwOGQ4NzdkYmEwZDQ2YjBkMzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cncSnmsEOZY6-t9vqkxSg_qwqToqsMT2hGJhg7QRyCM)](https://private-user-images.githubusercontent.com/1496954/408584384-7c66903a-1554-46f3-ac40-2cb908c28284.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDM4NC03YzY2OTAzYS0xNTU0LTQ2ZjMtYWM0MC0yY2I5MDhjMjgyODQuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE3YTQwZjczZTA3NThkMDhlNDczMzJiYjhiNzIwODc4NzM4YzZjMjY5OThkNDkwOGQ4NzdkYmEwZDQ2YjBkMzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cncSnmsEOZY6-t9vqkxSg_qwqToqsMT2hGJhg7QRyCM)

### Instagram-like filters

[](#instagram-like-filters)

```
$pixelCraft = new PixelCraft();

$pixelCraft->loadImage('yourimage.jpg');

$filtersSet = array();
$filtersSet[] = array(IMG_FILTER_BRIGHTNESS => -15);
$filtersSet[] = array(IMG_FILTER_GRAYSCALE => -5);
$filtersSet[] = array(IMG_FILTER_COLORIZE => array(80, 0, 60));
$filtersSet[] = array(IMG_FILTER_GAUSSIAN_BLUR => '');

$pixelCraft->imageFilters($filtersSet);

$pixelCraft->renderImage('jpeg');
```

[![instafilters](https://private-user-images.githubusercontent.com/1496954/408584431-6b4c4a21-c2f8-4b2a-ad61-9d164c96bdb9.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDQzMS02YjRjNGEyMS1jMmY4LTRiMmEtYWQ2MS05ZDE2NGM5NmJkYjkuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ0OTIwY2FmNTAxMDJkMzZjMDE2YTk4YzIyN2I2ZmI5NzRlMjJmYzJmYWVhMjVhMDg3MGRjYjdkOTc0MGY5ZTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.N2w4XA1AlcXfT_veoADSBo4Vv7wVEWIrUebRBJTRusc)](https://private-user-images.githubusercontent.com/1496954/408584431-6b4c4a21-c2f8-4b2a-ad61-9d164c96bdb9.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDQzMS02YjRjNGEyMS1jMmY4LTRiMmEtYWQ2MS05ZDE2NGM5NmJkYjkuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ0OTIwY2FmNTAxMDJkMzZjMDE2YTk4YzIyN2I2ZmI5NzRlMjJmYzJmYWVhMjVhMDg3MGRjYjdkOTc0MGY5ZTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.N2w4XA1AlcXfT_veoADSBo4Vv7wVEWIrUebRBJTRusc)

### Adding text to image

[](#adding-text-to-image)

```
$pixelCraft = new PixelCraft();

$pixelCraft->loadImage('yourimage.jpg');

$labelPosition = ($pixelCraft->getImageHeight()) - 10;
$pixelCraft->drawTextAutoSize($labelPosition, 10, 'Text at image bottom', 'white', 'black');

$pixelCraft->renderImage('jpeg');
```

[![textatbottom](https://private-user-images.githubusercontent.com/1496954/408584475-2116e0c1-6972-4959-9ae1-7224e9f04b00.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDQ3NS0yMTE2ZTBjMS02OTcyLTQ5NTktOWFlMS03MjI0ZTlmMDRiMDAuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE1NWI3YjY4MDA4NWJmZWZmMmNmOGMwYWU0YTE0ZmU1MjVlOGZjMjQzMTk5OGE5MDA1MDQ3NzAyNWE1N2VlMWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.fNJGsalDJ7QlmzP35MeJJjrxIcCB7-E8LmJYbnCsKn8)](https://private-user-images.githubusercontent.com/1496954/408584475-2116e0c1-6972-4959-9ae1-7224e9f04b00.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDQ3NS0yMTE2ZTBjMS02OTcyLTQ5NTktOWFlMS03MjI0ZTlmMDRiMDAuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE1NWI3YjY4MDA4NWJmZWZmMmNmOGMwYWU0YTE0ZmU1MjVlOGZjMjQzMTk5OGE5MDA1MDQ3NzAyNWE1N2VlMWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.fNJGsalDJ7QlmzP35MeJJjrxIcCB7-E8LmJYbnCsKn8)

### Drawing pixel-art

[](#drawing-pixel-art)

```
$pixelCraft = new PixelCraft();

$pixelMap = '
1111111111111111111111111
1000000000000000000000001
1000000000001000000000001
1000000000011100000000001
1001000000011100000001001
1001100000011100000011001
1001110000011100000111001
1001111000011100001111001
1001101100011100011011001
1001101100011100011011001
1001100110011100110011001
1001100110011100110011001
1001100110011100110011001
1001100110011100110011001
1001100110011100110011001
1001100110011100110011001
1001100110011100110011001
1001111100010100011111001
1001111000110110001111001
1001101101100011011011001
1001100111110111110011001
1001100011011101100011001
1001100011001001100011001
1001111111111111111111001
1001111111111111111111001
1000000011001001100000001
1000000001101011000000001
1000000000111110000000001
1000000000001000000000001
1000000000000000000000001
1111111111111111111111111
';

$pixelCraft->createImage(25,31);
$pixelCraft->addColor('foreground', 227, 209, 54);
$pixelCraft->addColor('background', 73, 140, 204);

$pixelMap=trim($pixelMap);
$pixelMap=explode(PHP_EOL,$pixelMap);
foreach ($pixelMap as $y=>$xAxis) {
    $xAxis=str_split($xAxis);
    foreach ($xAxis as $x=>$pixel) {
        if ($pixel) {
            $pixelCraft->drawPixel($x,$y,'foreground');
        } else {
            $pixelCraft->drawPixel($x,$y,'background');
        }
    }
}

$pixelCraft->scale(16);

$pixelCraft->renderImage();
```

[![pixelart](https://private-user-images.githubusercontent.com/1496954/408584584-df72f378-4eef-4c28-bb81-5c3fcbc53cb9.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDU4NC1kZjcyZjM3OC00ZWVmLTRjMjgtYmI4MS01YzNmY2JjNTNjYjkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTZhMTc5ZDM2OTI0NzEwNmEyZDA1Nzg5YmFmMTJiM2VmOTA4ZDQ3NTU0NzY0MDM1YzhjMzFjZDJhOTgzNjRjOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.NGdtGuab4aNz2EFh6V0gGfwrvz58Cs134U6FDv4uf6k)](https://private-user-images.githubusercontent.com/1496954/408584584-df72f378-4eef-4c28-bb81-5c3fcbc53cb9.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4NDU4NC1kZjcyZjM3OC00ZWVmLTRjMjgtYmI4MS01YzNmY2JjNTNjYjkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTZhMTc5ZDM2OTI0NzEwNmEyZDA1Nzg5YmFmMTJiM2VmOTA4ZDQ3NTU0NzY0MDM1YzhjMzFjZDJhOTgzNjRjOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.NGdtGuab4aNz2EFh6V0gGfwrvz58Cs134U6FDv4uf6k)

### Random values visualization

[](#random-values-visualization)

```
$pixelCraft = new PixelCraft();

$width=100;
$height=100;
$pixelCraft->createImage($width,$height);

for ($x=0;$xaddColor($colorName,$randomR,$randomG,$randomB);
        $pixelCraft->drawPixel($x,$y,$colorName);
    }
}

$pixelCraft->scale(8);
$pixelCraft->renderImage();
```

[![drawrandom](https://private-user-images.githubusercontent.com/1496954/408578528-3d970496-f286-4c10-be1c-961aeb85d9f5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU3ODUyOC0zZDk3MDQ5Ni1mMjg2LTRjMTAtYmUxYy05NjFhZWI4NWQ5ZjUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjFkZDhiZGQ4ZjBlNDJhNmI3MjliN2ZiYmFkMDBlOTJkMDc5MTkwODVjZjY5NTA5MDEwOTI0ZDg3YzlhMDQ1YSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.zvo4Qn2gQLAHwx9GC8h-Agve_ahAfY5_TPUN3J-1oBk)](https://private-user-images.githubusercontent.com/1496954/408578528-3d970496-f286-4c10-be1c-961aeb85d9f5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU3ODUyOC0zZDk3MDQ5Ni1mMjg2LTRjMTAtYmUxYy05NjFhZWI4NWQ5ZjUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjFkZDhiZGQ4ZjBlNDJhNmI3MjliN2ZiYmFkMDBlOTJkMDc5MTkwODVjZjY5NTA5MDEwOTI0ZDg3YzlhMDQ1YSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.zvo4Qn2gQLAHwx9GC8h-Agve_ahAfY5_TPUN3J-1oBk)

### Image region crop

[](#image-region-crop)

```
$pixelCraft = new PixelCraft();

$pixelCraft->loadImage('../assets/fox.jpg');

$pixelCraft->cropRegion(80, 20, 220, 220);
$pixelCraft->drawString(180,20,$pixelCraft->getImageWidth().'x'.$pixelCraft->getImageHeight(),'black');

//saving original image type
$originalFileType=$pixelCraft->getImageType();

$pixelCraft->renderImage($originalFileType);
```

[![regioncrop](https://private-user-images.githubusercontent.com/1496954/408580223-7b30f3c5-8c56-497d-8611-72d7505ccc67.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4MDIyMy03YjMwZjNjNS04YzU2LTQ5N2QtODYxMS03MmQ3NTA1Y2NjNjcuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjMWI0NjIxMDMxODdjYjQ3MzM1ODI0ZmZlYzFkYzJjNjYwZDNiMjY1N2E3NjdmMjZiM2YyZjY3NThkODMyYzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YuWaO4QlFIiWURoIRe_t30B4x1PMDWCq8aCknaSxCeY)](https://private-user-images.githubusercontent.com/1496954/408580223-7b30f3c5-8c56-497d-8611-72d7505ccc67.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4MDIyMy03YjMwZjNjNS04YzU2LTQ5N2QtODYxMS03MmQ3NTA1Y2NjNjcuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjMWI0NjIxMDMxODdjYjQ3MzM1ODI0ZmZlYzFkYzJjNjYwZDNiMjY1N2E3NjdmMjZiM2YyZjY3NThkODMyYzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YuWaO4QlFIiWURoIRe_t30B4x1PMDWCq8aCknaSxCeY)

### Image resize and region crop

[](#image-resize-and-region-crop)

```
$pixelCraft = new PixelCraft();

$pixelCraft->loadImage('../assets/fox.jpg');

$pixelCraft->crop(256, 256);
$pixelCraft->resize(128, 128);

//saving original image type
$originalFileType=$pixelCraft->getImageType();

$pixelCraft->renderImage($originalFileType);
```

[![resizeandcrop](https://private-user-images.githubusercontent.com/1496954/408580316-4b525b75-63e6-4b2e-83dc-6845926f8ff4.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4MDMxNi00YjUyNWI3NS02M2U2LTRiMmUtODNkYy02ODQ1OTI2ZjhmZjQuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTllZTBkM2I1MGZhNjU4NDRjOTdlMTBlYTYxNjQ0MDU1ZmI5NmZmMDhiMzI1ZDQzMzZiMzhmNDYxOWVkMzkzZjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Ty3F3COqD8vEyx7a5ZFukWAbwQPGW74b9tTGIbXYZl0)](https://private-user-images.githubusercontent.com/1496954/408580316-4b525b75-63e6-4b2e-83dc-6845926f8ff4.jpeg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU4MDMxNi00YjUyNWI3NS02M2U2LTRiMmUtODNkYy02ODQ1OTI2ZjhmZjQuanBlZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDAzVDE0MDk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTllZTBkM2I1MGZhNjU4NDRjOTdlMTBlYTYxNjQ0MDU1ZmI5NmZmMDhiMzI1ZDQzMzZiMzhmNDYxOWVkMzkzZjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Ty3F3COqD8vEyx7a5ZFukWAbwQPGW74b9tTGIbXYZl0)

### Converting an image to ASCII-art based on pixel brightness

[](#converting-an-image-to-ascii-art-based-on-pixel-brightness)

```
$pixelCraft = new PixelCraft();

$charMap = '@#W$9876543210?!abc;:+=-,._       ';
$len = strlen($charMap);

$result = '';
$pixelCraft->loadImage('../assets/horse.png');

$filterSet = array();
$filterSet []= array(IMG_FILTER_NEGATE =>'');
$pixelCraft->imageFilters($filterSet);
$pixelCraft->pixelate(3, true);
$pixelCraft->resize(64, 64);

$colorMap = $pixelCraft->getColorMap(false);

foreach ($colorMap as $x => $ys) {
    foreach ($ys as $y => $color) {
        $brightness = $pixelCraft->rgbToBrightness($color);
        $charIndex = floor(($brightness * $len) / 255);
        $result .= $charMap[$charIndex].' ';
    }
    $result .= PHP_EOL;
}

print($result);
```

[![pcimg2ascii](https://private-user-images.githubusercontent.com/1496954/408577289-a1a1ef1e-4550-4b72-a7b5-94c38d5d229b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU3NzI4OS1hMWExZWYxZS00NTUwLTRiNzItYTdiNS05NGMzOGQ1ZDIyOWIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NDlkMmJlMTk3ZTdkODU4ZmZkNDhiODY3MTI3ZDRhYjAxNzQ3MTQ5YjNmMmFjMDczODhlZGZlYTk2NWMyZDNjNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.CX1BKJVIF9Hi3pr0ELS4AyrROlycQ_8wLMj0HTMh0o0)](https://private-user-images.githubusercontent.com/1496954/408577289-a1a1ef1e-4550-4b72-a7b5-94c38d5d229b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMjU2OTYsIm5iZiI6MTc3NTIyNTM5NiwicGF0aCI6Ii8xNDk2OTU0LzQwODU3NzI4OS1hMWExZWYxZS00NTUwLTRiNzItYTdiNS05NGMzOGQ1ZDIyOWIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDNUMTQwOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NDlkMmJlMTk3ZTdkODU4ZmZkNDhiODY3MTI3ZDRhYjAxNzQ3MTQ5YjNmMmFjMDczODhlZGZlYTk2NWMyZDNjNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.CX1BKJVIF9Hi3pr0ELS4AyrROlycQ_8wLMj0HTMh0o0)

[Full PixelCraft class documentation](https://ubilling.net.ua/api_doc/classes/PixelCraft.xhtml)

Installation with [composer](https://getcomposer.org)
-----------------------------------------------------

[](#installation-with-composer)

The recommended method of installing this library is via [Composer](https://packagist.org/packages/pixelcraft/pixelcraft)

### Terminal

[](#terminal)

```
composer require pixelcraft/pixelcraft
```

License
-------

[](#license)

MIT

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance79

Regular maintenance activity

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity44

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 ~63 days

Recently: every ~79 days

Total

12

Last Release

166d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1bbf412f6d6ac266ece59eddf2f458fae1a7b637360688fcaac26c38aa1bc932?d=identicon)[nightflyza](/maintainers/nightflyza)

---

Top Contributors

[![nightflyza](https://avatars.githubusercontent.com/u/1496954?v=4)](https://github.com/nightflyza "nightflyza (32 commits)")

---

Tags

cropgdgraphicsimage-conversionimage-filtersimage-generationimage-manipulationimage-processingimages2asciiphpphp-image-processorphp-image-resizerphp-librarypixel-artthumbnailwatermarksthumbnailimagegdresizewatermarkfilterimagespngjpgcropWebpimage-conversion

### Embed Badge

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

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

###  Alternatives

[intervention/image

PHP Image Processing

14.3k194.3M2.2k](/packages/intervention-image)[rosell-dk/webp-convert

Convert JPEG &amp; PNG to WebP with PHP

6038.1M54](/packages/rosell-dk-webp-convert)[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)[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)
