All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
3.0.0 - Unreleased
Requires libvips v8.6.0.
With the feedback that you've provided we can successfully close the following issues/enhancements: #13, #15, #37, #62, #68, #69, #70, #75, #76, #78, #80, #81, #90, #106 and #115. Thanks for your support!
- Device pixel ratio
&dpr=
. See #115 for more info.
- Letterboxing
&t=letterbox
. See #80 for more info.
- Rotation
&or=
. Acceptsauto
,0
,90
,180
or270
. Default isauto
. Theauto
option uses Exif data to automatically orient images correctly.
- Smart crop
&a=entropy
or&a=attention
(only works when&t=square
). Crops the image down to specific dimensions by removing boring parts. Where:entropy
: focus on the region with the highest Shannon entropy.attention
: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones.
- Focal point cropping
&a=crop-x%-y%
(only works when&t=square
). Using two offset percentages, wherex%
is the horizontal offset andy%
is the vertical offset. - Shape cropping
&shape=
. Accepts:circle
ellipse
triangle
triangle-180
: Triangle tilted upside downpentagon
pentagon-180
: Pentagon tilted upside downhexagon
square
: Square tilted 45 degreesstar
: 5-point starheart
- The brightness of an image
&bri=
. Use values between-100
and+100
, where0
represents no change. - The contrast of an image
&con=
. Use values between-100
and+100
, where0
represents no change. - The gamma of an image
&gam=
. Use values between1
and3
. The default value is2.2
, a suitable approximation for sRGB images. - Sharpen an image
&sharp=
. Required format:f,j,r
. Arguments:- Flat
f
- Sharpening to apply to flat areas. (Default:1.0
) - Jagged
j
- Sharpening to apply to jagged areas. (Default:2.0
) - Radius
r
- Sharpening mask to apply in pixels. (optional)
- Flat
- The background color of an image
&bg=
. Can be used in combination with letterboxing. Accepts hexadecimal RGB and RBG alpha formats. See #81 for more info.
- The blur effect
&blur=
. Use values between0
and100
. See #69. - The filter effect
&filt=
. Acceptsgreyscale
,sepia
ornegate
.
- With the magical help of libvips and the PHP binding php-vips, we "officially" support
PNG
,JPG
,WEBP
,GIF
(not animated),SVG
,PDF
andTIFF
as image input. "Unofficially" we're supporting all libMagick image file types.
- We've added
&output=webp
and&output=tiff
in an effort to support more image formats as output. See #68.
- Image filename in HTTP header (
Content-Disposition: inline
). See #78. - Support for Cyrillic and Arabic characters. See #13.
- The
&errorredirect=
parameter to redirect to a default image if the image URL is not found. The redirect URL must be formatted the same as the?url=
parameter. See #37. - In order to load a given page (for an PDF, TIFF and multi-size ICO file) we've added the
&page=
parameter. The value is numbered from zero. - Add support for Docker deployment. See the Docker installation instructions.
- Dropped Intervention Image in favor of php-vips because resizing an image with libvips is typically 4x-5x faster than using the quickest ImageMagick.
- We're now using the uri package in order to parse URIs correctly. This is a drop-in replacement to PHP’s
parse_url
function.
URL-parameter values
GET | Value | Use instead |
---|---|---|
a |
=t |
=top |
a |
=b |
=bottom |
a |
=l |
=left |
a |
=r |
=right |
URL-parameters
GET | Use instead |
---|---|
circle |
shape=circle |
2.0.0 - 2015-12-27
This version was never used in production, it's only used for testing purposes and it was a beginning to re-write the entire image proxy (which is in production since 2007).
- Add CHANGELOG.md based on ’Keep a CHANGELOG’.
- Composer ready and PSR-2 compliant.
- Used the Intervention Image library for image handling and manipulation.
- Used the Guzzle library for sending HTTP requests.
1.0.0 - 2007-09-10
The start of our image proxy. See for more details here.
We never kept a change log from 2007 till 2015. For a quick overview what we've added, changed or fixed in the past see our completed label on our issue tracker. Or take a look at our 1.x branch.