elgervb / imagemanipulation
Library for image manipulation in PHP with GD
Requires
- phpunit/phpunit: ^4.8
This package is not auto-updated.
Last update: 2025-02-27 17:40:56 UTC
README
Fork me on GitHub: https://github.com/elgervb/imagemanipulation
Library to manipulate images using PHP's GD library. Most of the functionality is available through the ImageBuilder
facade.
This way chaining of image filters and thumbnailing is possible, like:
ImageBuilder::create( new \SplFileInfo('image.jpg') ) ->contrast( 20 ) // increase contrast ->colorize( '#DB3636' ) // apply a bit of red the the image ->flip( ImageFilterFlip::FLIP_VERTICALLY ) // flip image vertically ->save( new \SplFileInfo( 'image.new.png' ) ) // save the jpg image as png with filters applied ->render( 80 ); // render to browser with quality 80
Installation
With composer.json:
"require" : {
"elgervb/imagemanipulation": "^1.0"
}
Requirements
PHP version >= 5.3 with GD library
FUNCTIONALITY
Filters
Lots of image filters. All of them listed below:
- brightness
- colorize
- comic
- contrast
- convolution 3x3 filters
- darken
- dodge
- duotone
- edge detect
- emboss
- find edges
- flip (horizonal, vertical, both)
- gamma correction
- gaussian blur
- grayscale
- hue rotate
- mean remove
- motion blur
- negative
- noise
- old cardboard
- opacity
- pixelate
- random blocks with custom size and color
- replace color
- reverse
- rounded corners
- scatter
- selective blur
- semi grayscale
- sepia
- sepia fast
- sharpen
- smooth
- sobel edge detect
- sobel edge enhance (based on convolution matrix)
- true color
- vignette
Overlay
Use an image as overlay on another image. Can be configured with overlay opacity, start and end position and fill options.
Reflection
Use the current image to make a reflection below the original image
Image repeater
Repeat images on a canvas, until it fits. This way we can create Warhol like images.
Rotate
Rotate images in degrees. When rotating an image not equal to 90, 180, 270 or 360 degrees, then optionally you can specify a background color for those oncovered edges.
Thumbnails
Create thumbnails on the fly. There are several strategies to use:
- Centered strategy: create a thumb from the center of an image. Ideal for creating square thumbs from not so square images
- Max strategy: resize the image to a max width or height keeping proportions. For example: when resizing an image (300x750) on max 500 pixels, the resulting image will be 200x500 pixels
- Percentage strategy: reduce the size of an image with a certain percentage.
Watermarking
Add a watermark to your image. Possible positions are: top, bottom, left, right, center, top right, top left, bottom right, bottom left.
Examples
Thumbnails
You can create thumbnails in several ways
centered
create a thumbnail which is centered in the middle of the image
Parameter | Default | Description |
---|---|---|
width | 250 | The new width of the image in pixels |
height | 250 | The new height of the image in pixels |
max
resize the image to a max width or height keeping proportions, thus restraining the image to a certain size
Parameter | Default | Description |
---|---|---|
width | 250 | The max width of the image in pixels |
height | 250 | The max height of the image in pixels |
percentage
reduce a image with a certain percentage
Parameter | Default | Description |
---|---|---|
percentage | 250 | The percentage to reduce the image with |
square
Parameter | Default | Description |
---|---|---|
width | 250 | The new width of the image in pixels |
height | 250 | The new height of the image in pixels |
Available Filters
blocks
Add random blocks to an image with custom size and color
Parameter | Default | Description |
---|---|---|
number | 100 | The number of blocks |
size | 25 | The size of the blocks in pixels |
color | ffffff | The color of the blocks |
brightness
Adjust the brightness of the image, either lighter or darker
Parameter | Default | Description |
---|---|---|
rate | 20 | The brightness level from -255 to 255, from darker to lighter |
colorize
Blends a fill color with the image
Parameter | Default | Description |
---|---|---|
color | ffffff | The color to blend, either in hexadecimal or rgb(a) |
opacity | null | The color opacity from 0 to 127 |
comic
Apply a sketchy comic filter to an image
Parameter | Default | Description |
---|---|---|
opacity | 40 | The opacity from 0 to 127 |
contrast
Changes the contrast of the image
Parameter | Default | Description |
---|---|---|
rate | 5 | The opacity from -100 to 100, from minimal contrast to high constrast |
###darken Adjust the brightness of the image, either darker or lighter
Parameter | Default | Description |
---|---|---|
rate | 20 | The brightness level from -255 to 255, from lighter to darker |
###dodge Dodge an image, resulting in a darker image
Parameter | Default | Description |
---|---|---|
rate | 75 | The dodge level between 0 and 100 |
###duotone Duotone filter. Enhances Red, Green or Blue or a combination
Parameter | Default | Description |
---|---|---|
red | 0 | The amount of red to add max = 255 |
green | 0 | The amount of green to add max = 255 |
blue | 0 | The amount of blue to add max = 255 |
###edgedetect Uses edge detection to highlight the edges in the image
###emboss Embosses the image
###findedges Find the edges in an image without color loss
###flip Flips an image
Parameter | Default | Description |
---|---|---|
mode | both | Direction to fip: vertical, horizontal or both |
###gammacorrection Applies gamma correction
Parameter | Default | Description |
---|---|---|
input | 1.0 | Input |
output | 1.537 | Output |
###gaussianblur Blurs the image using the Gaussian method.
###grayscale Converts the colors to grayscale
###huerotate Rotete the hue of the image
Parameter | Default | Description |
---|---|---|
rotate | 90 | degrees to rotate |
###meanremove Uses mean removal to achieve a "sketchy" effect
###motionblur Motion blurs the image
###negative Create a negative of an image
###noise add noise to the image
Parameter | Default | Description |
---|---|---|
rate | 20 | The amount of noise to apply |
###oldcardboard Image filter to give the image an old cardboard look
###opacity Sets the opacity of an image
Parameter | Default | Description |
---|---|---|
opacity | 80 | A value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent. |
###pixelate Pixelate an image
Parameter | Default | Description |
---|---|---|
rate | 20 | the blocksize in pixels |
###rotate Rotate an image over an angle
Parameter | Default | Description |
---|---|---|
degrees | 90 | The degrees to rotate the image |
color | null | The background color to apply |
###scatter Scatter pixels around in a random way
Parameter | Default | Description |
---|---|---|
rate | 5 | the scatter size in pixels |
###selectiveblur Image filter Selective Blur
###sepia Apply sepia to the image
Parameter | Default | Description |
---|---|---|
rate | 15 | the darken rate |
###semigrayscale Applies grayscale to an image, optionally add a grayscale percentage
Parameter | Default | Description |
---|---|---|
rate | 75 | The grayscale rate |
###sepiafast Apply sepia to the image (fast)
###sharpen Sharpens the image
###smooth Makes the image smoother.
Parameter | Default | Description |
---|---|---|
rate | 5 | the darken rate |
###sobel Sobel edge detect (extremely slow...)
###sobeledge Sobel edge enhance
###truecolor Makes the image smoother.
Parameter | Default | Description |
---|---|---|
primary | ffffff | the primary color |
secundary | 000000 | the secundary color |
###vignette Applies a darker mask around the edges of the image