Skip to content

Latest commit

 

History

History
125 lines (97 loc) · 8.17 KB

File metadata and controls

125 lines (97 loc) · 8.17 KB

Changelog

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.

4.0.0 - started 2018-07-17

Requires libvips 8.7+ and OpenResty 1.13.6.2+.

Note

Rewrote the complete code base to Lua and switched to OpenResty, which turns Nginx and LuaJIT into a full-fledged scriptable web platform.

Why?

Because it's robust and fast. One of the core benefits of OpenResty is that it is fully asynchronous and that our code can be written directly inside Nginx without using PHP-FPM and FastCGI.

The amazing just-in-time (JIT) compilation and the integrated foreign function interface (FFI) in LuaJIT have also been motives to move away from PHP.

3.0.0 - started 2017-01-01

Requires libvips 8.7+ and PHP 7.1+.

Note

With the feedback that you've provided we can successfully close the following issues/enhancements: #10, #13, #15, #37, #62, #68, #69, #70, #75, #76, #78, #80, #81, #90, #106, #115, #121, #122, #133, and #137. Thanks for your support!

Added

Size

  • Device pixel ratio &dpr=. See #115 for more info.

Transformation

  • Letterboxing &t=letterbox. See #80 for more info.

Orientation

  • Rotation &or=. Accepts auto or if an angle is specified, it is converted to a valid 90/180/270 degree rotation. Default is auto. The auto option uses Exif data to automatically orient images correctly.

Cropping

  • 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, where x% is the horizontal offset and y% is the vertical offset.
  • Shape cropping &shape=. Accepts:
    • circle
    • ellipse
    • triangle
    • triangle-180: Triangle tilted upside down
    • pentagon
    • pentagon-180: Pentagon tilted upside down
    • hexagon
    • square: Square tilted 45 degrees
    • star: 5-point star
    • heart

Adjustments

  • The brightness of an image &bri=. Use values between -100 and +100, where 0 represents no change.
  • The contrast of an image &con=. Use values between -100 and +100, where 0 represents no change.
  • The gamma of an image &gam=. Use values between 1 and 3. The default value is 2.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)
  • 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.

Effects

  • The blur effect &blur=. Use values between 0 and 100. See #69.
  • The filter effect &filt=. Accepts greyscale, sepia or negate.

Input

  • With the magical help of libvips and the PHP binding php-vips, we "officially" support PNG, JPG, WEBP, GIF (not animated), SVG, PDF and TIFF as image input. "Unofficially" we're supporting all libMagick image file types.

Output

  • We've added &output=webp and &output=tiff in an effort to support more image formats as output. See #68.

Improvements

  • Image filename in HTTP header (Content-Disposition: inline). See #78.
  • The &filename= parameter to specify the filename returned in the Content-Disposition header. The filename must only contain alphanumeric characters. See #122.
  • 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.
  • Support for non-standard ports. See #10.
  • Added a privacy policy. See Privacy-Policy.md.
  • Add support for Docker deployment. See the Docker installation instructions.

Changed

  • 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.

Deprecated

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 - started 2015-12-27

Note

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).

Added

1.0.0 - started 2007-09-10

Note

The start of our image proxy. See for more details here.

Added / Changed / Fixed

We never kept a changelog 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.