Generates Imagor transformation URLs. Self-hosted, Go-based image processing server (Thumbor-compatible).
use Timber\Chainsaw\Provider\Imagor\ImagorProvider;
use Timber\Chainsaw\Signer\Algorithm;
use Timber\Chainsaw\Signer\HmacUrlSigner;
$provider=newImagorProvider(
host:'http://localhost:8083',
signer:newHmacUrlSigner(key:'mysecret', algorithm: Algorithm::Sha1), // optional
);
Imagor signing defaults to HMAC-SHA1; pass algorithm: Algorithm::Sha256 to match IMAGOR_SIGNER_TYPE=sha256. Use length: N to truncate the raw HMAC before base64url encoding (matches IMAGOR_SIGNER_TRUNCATE).
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
β
Free
Height
β
Free
Scale
β
No scale-by-factor primitive; use width()/height()
Free; 90/180/270 only β arbitrary angles throw UnsupportedManipulator
AutoOrient
β
Free; EXIF orientation applied implicitly by default
Watermark
β
Free
Round corners
π¦
Free (radius + background color)
Fill modes
π¦
Free (blur, auto average color, none transparent β beyond solid color)
Special
Manipulation
Chainsaw
Availability
BlurHash
β
ThumbHash
β
Dither
β
Strip EXIF
π¦
Free
Strip ICC
π¦
Free (with sRGB conversion)
Color space conversion
π¦
Free (to_colorspace β sRGB, P3, CMYK)
DPI
π¦
Free (for PDF/SVG rendering)
Page selection
π¦
Free (PDF page or animation frame)
Max frames
π¦
Free (limit animation)
Max bytes
π¦
Free (auto quality degradation)
No upscale
π¦
Free
Proportion
π¦
Free (scale by percentage)
Average color
π¦
Free (metadata endpoint)
URL expiration
π¦
Free
Encoding
Format
Supported
JPEG
β
PNG
β
WebP
β
AVIF
β
GIF
β
Auto format
β (silently ignored)
Quality
β
Concrete formats are emitted via the format(...) filter; Format::Auto is silently skipped (set an explicit format or compose a <picture> with typed sources).
Notes
Gamma, Sepia, and Border are not available in Imagor β they throw UnsupportedManipulator.
Thumbor-compatible β Imagor is a Go reimplementation of Thumbor with a compatible URL scheme but additional features (blend modes, text overlays, color space conversion).
Auto-orientation β Imagor auto-orients from EXIF by default, so Orientation::Auto and Orientation::Rotate0 are no-ops.
Watermark β requires both w_ratio and h_ratio (6 args) to trigger resizing. Negative position values anchor from right/bottom edges.
Image compositing β Imagorβs image() filter is significantly more powerful than simple watermarks, supporting 15 Photoshop-style blend modes.
Color encoding β strips # from hex colors (e.g. bg:3b82f6).
ThumbHash β Imagor exposes a native ThumbHash metadata endpoint (/meta/...) that returns the raw hash string. Chainsawβs ->thumbHash() produces a decoded preview image (via InterventionProvider only) and does not currently wire Imagorβs metadata endpoint. A future driver-level integration could surface the endpoint for apps that want the raw hash.