gwa / gw-image-editor
Simple PHP image manipulation library
Installs: 3 762
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 7
Forks: 1
Open Issues: 1
Requires
- php: >=5.4
- ext-exif: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^4.8
- squizlabs/php_codesniffer: ^2.3
README
A PHP image editor library that uses the bundled GD library.
Provides a simple and intuitive interface for typical editing, cropping, resizing and filtering actions on existing images.
Typical use cases:
- Scaling and cropping uploaded images to within constraints
- Creating different sized versions of an image
- Adding watermarks
Installation
Install through composer:
composer require gwa/gw-image-editor
Usage
use Gwa\Image\ImageEditor; // create an editor using an existing image $editor = new ImageEditor('path/to/image.png'); // resize image to within 640 x 480 px, maintaining aspect ratio $editor->resizeToWithin(640, 480) ->save(); // resize image to exactly 640 x 480 px, cropping any overhang $editor->resizeTo(640, 480) ->save(); // resize image to exactly 640px width, preserving aspect ratio $editor->resizeTo(640) ->save(); // resize image to exactly 480px height, preserving aspect ratio $editor->resizeTo(null, 480) ->save(); // crop the image: x, y, width, height $editor->crop(10, 10, 100, 100) ->save(); // methods can be chained // - create and save medium image with max width and height of 500px // - create and save thumbnail image with exact dimensions of 100px x 100px $editor = new ImageEditor('path/to/original.jpg'); $editor->resizeToWithin(500, 500) ->saveAs('path/to/medium.jpg') ->resizeTo(100, 100) ->saveAs('path/to/thumbnail.jpg') ->saveAs('path/to/thumbnail.png', IMAGETYPE_PNG); // another image can be "pasted" in (e.g. a watermark) // - paste watermark into bottom right corner $editor = new ImageEditor('path/to/original.jpg'); $iw = $editor->getWidth(); $ih = $editor->getHeight(); $watermark = new ImageEditor('path/to/watermark.png'); $ww = $watermark->getWidth(); $wh = $watermark->getHeight(); $padding = 10; $editor->pasteImage($watermark, $iw - $ww - $padding, $ih - $wh - $padding) ->saveAs('path/to/watermarked.jpg'); // there are also filter methods available $editor = new ImageEditor('path/to/original.jpg'); $editor->grayscale() ->coloroverlay(0, 0, 0, 50) // 50% black overlay ->colorize(255, 0, 0, 0) // rgba
Tests
PHPUnit
$ ./vendor/bin/phpunit -c tests/phpunit.xml --coverage-html=tests/_report tests
Code style (PSR-2)
$ ./vendor/bin/phpcs --standard=PSR2 src