Source myles-tan.jpg
Providers 16 / 16
Intervention
Imagine
Services
Cells rendered
128
Total generation time
3.85 s
Peak memory
11.23 MB

Watermark

showing 16/16 providers

Rows scroll together horizontally · marks the fastest local provider per row — CDN timings measure URL build, not generation.

bottom-right

PHP
$image->crop(600, 400)->watermark('timber-tree-green.png', Position::BottomRight, paddingX: 10, paddingY: 10, width: 25, sizeUnit: Unit::Percent)
TWIG
{{ image|crop(600, 400)|watermark('timber-tree-green.png', enum('Timber\\Chainsaw\\Enum\\Position').BottomRight, paddingX=10, paddingY=10, width=25, sizeUnit=enum('Timber\\Chainsaw\\Enum\\Unit').Percent)|img(alt: 'bottom-right') }}
myles-tan.jpg600×400
intervention-gd
bottom-right
600×400 52.21 ms 11.23 MB
intervention-imagick
bottom-right
600×400 49.11 ms 11.23 MB
intervention-vips
bottom-right
600×400 48.14 ms 11.23 MB
imagine-gd
bottom-right
600×400 50.62 ms 11.23 MB
imagine-imagick ▲ FASTEST
bottom-right
600×400 47.49 ms 11.23 MB
cloudflare
Unsupported
cloudinary
bottom-right
600×400 47.34 ms 11.23 MB
imagekit
bottom-right
600×400 47.43 ms 11.23 MB
imgix
bottom-right
600×400 47.27 ms 11.23 MB
gumlet
Unsupported
bunny
Unsupported
imgproxy
Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
bottom-right
600×400 47.28 ms 11.23 MB
imagor
bottom-right
600×400 47.39 ms 11.23 MB
wserv
Unsupported

bottom-right (flush)

PHP
$image->crop(600, 400)->watermark('timber-tree-green.png', Position::BottomRight, width: 25, sizeUnit: Unit::Percent)
TWIG
{{ image|crop(600, 400)|watermark('timber-tree-green.png', enum('Timber\\Chainsaw\\Enum\\Position').BottomRight, width=25, sizeUnit=enum('Timber\\Chainsaw\\Enum\\Unit').Percent)|img(alt: 'bottom-right (flush)') }}
myles-tan.jpg600×400
intervention-gd ▲ FASTEST
bottom-right (flush)
600×400 47.02 ms 11.23 MB
intervention-imagick
bottom-right (flush)
600×400 47.27 ms 11.23 MB
intervention-vips
bottom-right (flush)
600×400 47.24 ms 11.23 MB
imagine-gd
bottom-right (flush)
600×400 47.72 ms 11.23 MB
imagine-imagick
bottom-right (flush)
600×400 47.31 ms 11.23 MB
cloudflare
Unsupported
cloudinary
bottom-right (flush)
600×400 47.53 ms 11.23 MB
imagekit
bottom-right (flush)
600×400 47.20 ms 11.23 MB
imgix
bottom-right (flush)
600×400 48.22 ms 11.23 MB
gumlet
bottom-right (flush)
600×400 47.82 ms 11.23 MB
bunny
Unsupported
imgproxy
Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
bottom-right (flush)
600×400 47.12 ms 11.23 MB
imagor
bottom-right (flush)
600×400 47.56 ms 11.23 MB
wserv
Unsupported

center 40%

PHP
$image->crop(600, 400)->watermark('timber-tree-green.png', Position::Center, width: 30, sizeUnit: Unit::Percent, alpha: 40)
TWIG
{{ image|crop(600, 400)|watermark('timber-tree-green.png', enum('Timber\\Chainsaw\\Enum\\Position').Center, width=30, sizeUnit=enum('Timber\\Chainsaw\\Enum\\Unit').Percent, alpha=40)|img(alt: 'center 40%') }}
myles-tan.jpg600×400
intervention-gd
center 40%
600×400 47.30 ms 11.23 MB
intervention-imagick
center 40%
600×400 47.36 ms 11.23 MB
intervention-vips
center 40%
600×400 47.20 ms 11.23 MB
imagine-gd
center 40%
600×400 47.42 ms 11.23 MB
imagine-imagick ▲ FASTEST
center 40%
600×400 47.13 ms 11.23 MB
cloudflare
Unsupported
cloudinary
center 40%
600×400 47.27 ms 11.23 MB
imagekit
center 40%
600×400 47.19 ms 11.23 MB
imgix
center 40%
600×400 47.06 ms 11.23 MB
gumlet
center 40%
600×400 47.46 ms 11.23 MB
bunny
Unsupported
imgproxy
Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
center 40%
600×400 47.68 ms 11.23 MB
imagor
center 40%
600×400 47.16 ms 11.23 MB
wserv
Unsupported

top-left

PHP
$image->crop(600, 400)->watermark('timber-tree-green.png', Position::TopLeft, paddingX: 10, paddingY: 10, width: 20, sizeUnit: Unit::Percent)
TWIG
{{ image|crop(600, 400)|watermark('timber-tree-green.png', enum('Timber\\Chainsaw\\Enum\\Position').TopLeft, paddingX=10, paddingY=10, width=20, sizeUnit=enum('Timber\\Chainsaw\\Enum\\Unit').Percent)|img(alt: 'top-left') }}
myles-tan.jpg600×400
intervention-gd ▲ FASTEST
top-left
600×400 47.11 ms 11.23 MB
intervention-imagick
top-left
600×400 47.65 ms 11.23 MB
intervention-vips
top-left
600×400 47.17 ms 11.23 MB
imagine-gd
top-left
600×400 47.68 ms 11.23 MB
imagine-imagick
top-left
600×400 47.21 ms 11.23 MB
cloudflare
Unsupported
cloudinary
top-left
600×400 47.25 ms 11.23 MB
imagekit
top-left
600×400 48.57 ms 11.23 MB
imgix
top-left
600×400 47.73 ms 11.23 MB
gumlet
top-left
600×400 47.26 ms 11.23 MB
bunny
Unsupported
imgproxy
Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
top-left
600×400 47.97 ms 11.23 MB
imagor
top-left
600×400 47.46 ms 11.23 MB
wserv
Unsupported

5%/5% padding (proportional)

PHP
$image->crop(600, 400)->watermark('timber-tree-green.png', Position::BottomRight, paddingX: 5, paddingY: 5, paddingUnit: Unit::Percent, width: 20, sizeUnit: Unit::Percent)
TWIG
{{ image|crop(600, 400)|watermark('timber-tree-green.png', enum('Timber\\Chainsaw\\Enum\\Position').BottomRight, paddingX=5, paddingY=5, paddingUnit=enum('Timber\\Chainsaw\\Enum\\Unit').Percent, width=20, sizeUnit=enum('Timber\\Chainsaw\\Enum\\Unit').Percent)|img(alt: '5%/5% padding (proportional)') }}
myles-tan.jpg600×400
intervention-gd
5%/5% padding (proportional)
600×400 47.61 ms 11.23 MB
intervention-imagick
5%/5% padding (proportional)
600×400 47.59 ms 11.23 MB
intervention-vips ▲ FASTEST
5%/5% padding (proportional)
600×400 47.37 ms 11.23 MB
imagine-gd
5%/5% padding (proportional)
600×400 47.72 ms 11.23 MB
imagine-imagick
5%/5% padding (proportional)
600×400 47.51 ms 11.23 MB
cloudflare
Unsupported
cloudinary
5%/5% padding (proportional)
600×400 47.23 ms 11.23 MB
imagekit
Unsupported
imgix
Unsupported
gumlet
Unsupported
bunny
Unsupported
imgproxy
Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
5%/5% padding (proportional)
600×400 47.11 ms 11.23 MB
imagor
5%/5% padding (proportional)
600×400 47.36 ms 11.23 MB
wserv
Unsupported

tiled

PHP
$image->crop(600, 400)->tiledWatermark('timber-tree-green.png', width: 12, sizeUnit: Unit::Percent, alpha: 25)
TWIG
{{ image|manipulate({crop: [600, 400], tiledWatermark: {0: 'timber-tree-green.png', width: 12, sizeUnit: enum('Timber\\Chainsaw\\Enum\\Unit').Percent, alpha: 25}})|img(alt: 'tiled') }}
myles-tan.jpg600×400
intervention-gd
tiled
600×400 47.30 ms 11.23 MB
intervention-imagick
tiled
600×400 47.34 ms 11.23 MB
intervention-vips
tiled
600×400 47.66 ms 11.23 MB
imagine-gd ▲ FASTEST
tiled
600×400 47.28 ms 11.23 MB
imagine-imagick
tiled
600×400 47.31 ms 11.23 MB
cloudflare
Unsupported
cloudinary
tiled
600×400 46.93 ms 11.23 MB
imagekit
Unsupported
imgix
tiled
600×400 47.35 ms 11.23 MB
gumlet
tiled
600×400 47.14 ms 11.23 MB
bunny
Unsupported
imgproxy
Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
tiled
600×400 47.30 ms 11.23 MB
imagor
tiled
600×400 47.45 ms 11.23 MB
wserv
Unsupported

tiled + gap (local only)

PHP
$image->crop(600, 400)->tiledWatermark('timber-tree-green.png', width: 10, sizeUnit: Unit::Percent, alpha: 30, gapX: 6, gapY: 6, gapUnit: Unit::Percent)
TWIG
{{ image|manipulate({crop: [600, 400], tiledWatermark: {0: 'timber-tree-green.png', width: 10, sizeUnit: enum('Timber\\Chainsaw\\Enum\\Unit').Percent, alpha: 30, gapX: 6, gapY: 6, gapUnit: enum('Timber\\Chainsaw\\Enum\\Unit').Percent}})|img(alt: 'tiled + gap (local only)') }}
myles-tan.jpg600×400
intervention-gd ▲ FASTEST
tiled + gap (local only)
600×400 47.04 ms 11.23 MB
intervention-imagick
tiled + gap (local only)
600×400 47.23 ms 11.23 MB
intervention-vips
tiled + gap (local only)
600×400 47.09 ms 11.23 MB
imagine-gd
tiled + gap (local only)
600×400 47.48 ms 11.23 MB
imagine-imagick
tiled + gap (local only)
600×400 47.16 ms 11.23 MB
cloudflare
Unsupported
cloudinary
Unsupported
imagekit
Unsupported
imgix
Unsupported
gumlet
Unsupported
bunny
Unsupported
imgproxy
Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
Unsupported
imagor
Unsupported
wserv
Unsupported

without(Watermark)

PHP
$image->crop(400, 300)->watermark('timber-tree-green.png', Position::BottomRight, paddingX: 10, paddingY: 10, width: 20, sizeUnit: Unit::Percent)->without(Watermark::class)
TWIG
{{ image|manipulate({crop: [400, 300], watermark: {0: 'timber-tree-green.png', 1: enum('Timber\\Chainsaw\\Enum\\Position').BottomRight, paddingX: 10, paddingY: 10, width: 20, sizeUnit: enum('Timber\\Chainsaw\\Enum\\Unit').Percent}, without: 'Timber\\Chainsaw\\Manipulator\\Watermark'})|img(alt: 'without(Watermark)') }}
myles-tan.jpg400×300
intervention-gd
without(Watermark)
400×300 47.31 ms 11.23 MB
intervention-imagick ▲ FASTEST
without(Watermark)
400×300 46.98 ms 11.23 MB
intervention-vips
without(Watermark)
400×300 47.14 ms 11.23 MB
imagine-gd
without(Watermark)
400×300 47.50 ms 11.23 MB
imagine-imagick
without(Watermark)
400×300 47.39 ms 11.23 MB
cloudflare
without(Watermark)
400×300 47.18 ms 11.23 MB
cloudinary
without(Watermark)
400×300 47.06 ms 11.23 MB
imagekit
without(Watermark)
400×300 46.89 ms 11.23 MB
imgix
without(Watermark)
400×300 47.40 ms 11.23 MB
gumlet
without(Watermark)
400×300 47.19 ms 11.23 MB
bunny
without(Watermark)
400×300 47.03 ms 11.23 MB
imgproxy
without(Watermark)
400×300 47.11 ms 11.23 MB
imgproxy-pro
Disabled provider not registered
thumbor
without(Watermark)
400×300 47.52 ms 11.23 MB
imagor
without(Watermark)
400×300 47.06 ms 11.23 MB
wserv
without(Watermark)
400×300 47.20 ms 11.23 MB