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
"require" : {
"elgervb/imagemanipulation": "^1.0"
}
PHP version >= 5.3 with GD library
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
Use an image as overlay on another image. Can be configured with overlay opacity, start and end position and fill options.
Use the current image to make a reflection below the original image
Repeat images on a canvas, until it fits. This way we can create Warhol like images.
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.
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.
Add a watermark to your image. Possible positions are: top, bottom, left, right, center, top right, top left, bottom right, bottom left.
You can create thumbnails in several ways
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 |
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 |
reduce a image with a certain percentage
Parameter | Default | Description |
---|---|---|
percentage | 250 | The percentage to reduce the image with |
Parameter | Default | Description |
---|---|---|
width | 250 | The new width of the image in pixels |
height | 250 | The new height of the image in pixels |
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 |
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 |
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 |
Apply a sketchy comic filter to an image
Parameter | Default | Description |
---|---|---|
opacity | 40 | The opacity from 0 to 127 |
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