ImgixProvider

Generates imgix transformation URLs. One of the most complete URL providers.

use Timber\Chainsaw\Provider\Imgix\ImgixProvider;

$provider = new ImgixProvider(
    host: 'https://example.imgix.net',
);

Output: {host}/{source}?w=800&h=600&fit=crop&s={signature}

Manipulation support

Legend: βœ… = implemented in Chainsaw, ⚠️ = supported with caveats, 🟦 = available on the CDN, not exposed by Chainsaw, ❌ = not available on this CDN.

Resize & crop

Manipulation Chainsaw Availability
Width βœ… Paid
Height βœ… Paid
Scale ❌ No scale-by-factor primitive; use width()/height()
Cover βœ… Paid (crop() alias; compass, focal, smart/edges, entropy & face anchors)
ManualCrop βœ… Paid
Contain βœ… Paid
Pad βœ… Paid
Stretch βœ… Paid
CropToRatio βœ… Paid (ar + fit=crop)
PadToRatio βœ… Paid (ar + fit=fill)
Trim βœ… Paid (color tolerance, alpha, padding)
Aspect ratio 🟦 Paid (ar)
Min/max width/height 🟦 Paid (min-w, max-w, min-h, max-h)
Source rectangle 🟦 Paid (rect pre-crop)
Face crop 🟦 Paid (crop=faces, faceindex, facepad)

Filters & effects

Manipulation Chainsaw Availability
Blur βœ… Paid
Sharpen βœ… Paid
Brightness βœ… Paid
Contrast βœ… Paid
Gamma βœ… Paid
Pixelate βœ… Paid
Greyscale βœ… Paid (via sat=-100)
Sepia βœ… Paid
Saturation βœ… Paid
Exposure 🟦 Paid
Highlight 🟦 Paid
Shadow 🟦 Paid
Hue shift βœ… Paid
Vibrance 🟦 Paid
Negate / Invert βœ… Paid
Unsharp mask 🟦 Paid (radius control)
Noise reduction 🟦 Paid (bound + sharpen)
Auto enhance 🟦 Paid
Auto red-eye 🟦 Paid

Stylize

Manipulation Chainsaw Availability
Duotone 🟦 Paid (two-color + alpha)
Halftone 🟦 Paid (dot pattern, angle control)
Monochrome 🟦 Paid (single color)

Generative AI

Manipulation Chainsaw Availability
AI upscale / super-resolution 🟦 Paid (up to 4x)
Background removal 🟦 Paid (shadow, semi-transparency)
Background replacement 🟦 Paid (prompt + negative prompt)
Generative fill 🟦 Paid (prompt, position, seed)
Object removal 🟦 Paid (rect or text prompt)
Text to image 🟦 Paid

Face & detection

Manipulation Chainsaw Availability
Face blur 🟦 Paid
Face pixelation 🟦 Paid
License plate blur 🟦 Paid
Face data (JSON) 🟦 Paid

Decoration & orientation

Manipulation Chainsaw Availability
Background βœ… Paid
Border βœ… All BorderType variants with Unit::Pixel; see notes for Expand ordering
Flip βœ… Paid
Rotate ⚠️ Paid; 90/180/270 only β€” arbitrary angles throw UnsupportedManipulator
AutoOrient βœ… Paid; EXIF orientation applied implicitly by default
Watermark βœ… Paid
Text overlays 🟦 Paid (full typography)
Image blending 🟦 Paid (Photoshop-style blend modes)
Mask shapes 🟦 Paid (corner radius, background)

Special

Manipulation Chainsaw Availability
BlurHash ❌
ThumbHash ❌
Dither ❌
Color palette extraction 🟦 Paid (CSS or JSON output)
Color space / ICC 🟦 Paid
PDF page selection 🟦 Paid
Progressive JPEG 🟦 Paid
Chroma subsampling 🟦 Paid
Color quantization 🟦 Paid
Lossless 🟦 Paid
SVG sanitization 🟦 Paid
Gradient fill 🟦 Paid (for padding)

Animation

Manipulation Chainsaw Availability
Loop count 🟦 Paid
Frame selection/skip 🟦 Paid
FPS 🟦 Paid
Reverse 🟦 Paid
GIF to MP4/WebM 🟦 Paid

Encoding

Format Supported
JPEG βœ…
PNG βœ…
WebP βœ…
AVIF βœ…
GIF βœ…
Auto format βœ…
Quality βœ…

Notes

  • Among the most complete URL providers – only Cloudinary implements more manipulators (imgix lacks a scale-by-factor primitive), with dozens more available on the platform.
  • Blur – range mapped from 0…100 to 0…2000.
  • Gamma – imgix gam is a percentage in -100..100 (default 0 = unchanged). Chainsaw’s multiplier is translated as pct = round((gamma - 1) * 100) and clamped; gamma(1.0) β†’ gam=0, gamma(2.0) β†’ gam=100 (saturated at max).
  • Border – Overlay maps to imgix border=w,color; Shrink and Expand map to pad=w&border=w,color. Using imgix’s native border overlay (rather than bg) preserves the interior alpha channel of transparent sources β€” bg would flatten every transparent pixel onto the border colour. Because imgix pad shrinks the image to fit within any pinned w/h, Expand works by bumping those dimensions by 2Γ—width at URL-generation time. This requires .width()/.height()/.crop() to appear before .border(..., BorderType::Expand) in the fluent chain β€” otherwise the later resize handler overwrites the bumped dimensions and the effect degrades to Shrink. Unit::Percent throws UnsupportedManipulator.
  • Trim – tolerance maps from 0…100 to 0…442 (imgix’s Euclidean RGB distance range).
  • URL signing – optional MD5 signing via UrlSignerInterface.
  • imgix is a paid SaaS product – all features require a subscription.
  • imgix has the broadest native feature set alongside Cloudinary, especially for AI/ML capabilities.