↻ Regenerate
Source myles-tan.jpg
Providers 16 / 16
Intervention
Imagine
Services
Cells rendered
96
Total generation time
50.12 ms
Peak memory
163.3 KB

Responsive

showing 16/16 providers

Rows scroll together horizontally · ▲ marks the fastest local provider per row and per output format (a JXL cell is never compared with an AVIF one) — CDN timings measure URL build, not generation.

widths 200/400/800

PHP
$image->crop(400, 300)->widths(200, 400, 800)
TWIG
{{ image|crop(400, 300)|widths(200, 400, 800)|img(alt: 'widths 200/400/800', sizes: '(min-width: 800px) 800px, 100vw') }}
myles-tan.jpg
intervention-gd
widths 200/400/800
3.13 ms 68.3 KB
intervention-imagick
widths 200/400/800
977.6 µs 47.3 KB
intervention-vips
widths 200/400/800
1.19 ms 163.3 KB
imagine-gd
widths 200/400/800
1,000.0 µs 72.2 KB
imagine-imagick ▲ FASTEST
widths 200/400/800
787.4 µs 47.6 KB
cloudflare
widths 200/400/800
747.1 µs 97.1 KB
cloudinary
widths 200/400/800
694.3 µs 39.5 KB
imagekit
widths 200/400/800
647.0 µs 34.0 KB
imgix
widths 200/400/800
531.2 µs 35.3 KB
gumlet
widths 200/400/800
496.5 µs 44.4 KB
bunny
widths 200/400/800
459.4 µs 29.7 KB
imgproxy
widths 200/400/800
645.7 µs 37.7 KB
imgproxy-pro
Disabled provider not registered
thumbor
widths 200/400/800
578.6 µs 34.9 KB
imagor
widths 200/400/800
571.8 µs 34.4 KB
wserv
widths 200/400/800
496.5 µs 35.0 KB

widths ...range(400, 1200, 400)

PHP
$image->crop(400, 300)->widths(400, 800, 1200)
TWIG
{{ image|crop(400, 300)|widths(400, 800, 1200)|img(alt: 'widths ...range(400, 1200, 400)', sizes: '(min-width: 1200px) 1200px, 100vw') }}
myles-tan.jpg
intervention-gd
widths ...range(400, 1200, 400)
460.7 µs 24.3 KB
intervention-imagick ▲ FASTEST
widths ...range(400, 1200, 400)
361.2 µs 24.2 KB
intervention-vips
widths ...range(400, 1200, 400)
401.7 µs 24.2 KB
imagine-gd
widths ...range(400, 1200, 400)
390.9 µs 24.2 KB
imagine-imagick
widths ...range(400, 1200, 400)
365.6 µs 24.2 KB
cloudflare
widths ...range(400, 1200, 400)
444.4 µs 24.2 KB
cloudinary
widths ...range(400, 1200, 400)
428.8 µs 24.3 KB
imagekit
widths ...range(400, 1200, 400)
457.6 µs 24.3 KB
imgix
widths ...range(400, 1200, 400)
399.7 µs 24.3 KB
gumlet
widths ...range(400, 1200, 400)
365.3 µs 24.3 KB
bunny
widths ...range(400, 1200, 400)
325.8 µs 24.3 KB
imgproxy
widths ...range(400, 1200, 400)
435.8 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
widths ...range(400, 1200, 400)
480.0 µs 24.3 KB
imagor
widths ...range(400, 1200, 400)
647.4 µs 24.3 KB
wserv
widths ...range(400, 1200, 400)
366.6 µs 24.3 KB

dpr 2x

PHP
$image->crop(400, 300)->dpr(2)
TWIG
{{ image|crop(400, 300)|dpr(2)|img(alt: 'dpr 2x') }}
myles-tan.jpg → 800×600
intervention-gd
dpr 2x
800×600 260.1 µs 24.3 KB
intervention-imagick
dpr 2x
800×600 173.7 µs 24.2 KB
intervention-vips
dpr 2x
800×600 181.2 µs 24.2 KB
imagine-gd
dpr 2x
800×600 160.2 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
dpr 2x
800×600 149.9 µs 24.2 KB
cloudflare
dpr 2x
800×600 247.4 µs 24.2 KB
cloudinary
dpr 2x
800×600 274.4 µs 24.3 KB
imagekit
dpr 2x
800×600 214.0 µs 24.3 KB
imgix
dpr 2x
800×600 189.7 µs 24.3 KB
gumlet
dpr 2x
800×600 175.9 µs 24.3 KB
bunny
dpr 2x
800×600 183.4 µs 24.3 KB
imgproxy
dpr 2x
800×600 209.9 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
dpr 2x
800×600 201.8 µs 24.3 KB
imagor
dpr 2x
800×600 189.7 µs 24.3 KB
wserv
dpr 2x
800×600 180.2 µs 24.3 KB

dpr 1.5x

PHP
$image->crop(400, 300)->dpr(1.5)
TWIG
{{ image|crop(400, 300)|dpr(1.5)|img(alt: 'dpr 1.5x') }}
myles-tan.jpg → 600×450
intervention-gd
dpr 1.5x
600×450 177.2 µs 24.3 KB
intervention-imagick
dpr 1.5x
600×450 143.8 µs 24.2 KB
intervention-vips ▲ FASTEST JPG
dpr 1.5x
600×450 136.0 µs 24.2 KB
imagine-gd
dpr 1.5x
600×450 177.8 µs 24.2 KB
imagine-imagick
dpr 1.5x
600×450 147.8 µs 24.2 KB
cloudflare
dpr 1.5x
600×450 201.5 µs 24.2 KB
cloudinary
dpr 1.5x
600×450 239.6 µs 24.3 KB
imagekit
dpr 1.5x
600×450 238.4 µs 24.3 KB
imgix
dpr 1.5x
600×450 194.1 µs 24.3 KB
gumlet
dpr 1.5x
600×450 177.4 µs 24.3 KB
bunny
dpr 1.5x
600×450 162.9 µs 24.3 KB
imgproxy
dpr 1.5x
600×450 239.4 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
dpr 1.5x
600×450 209.9 µs 24.3 KB
imagor
dpr 1.5x
600×450 192.0 µs 24.3 KB
wserv
dpr 1.5x
600×450 194.8 µs 24.3 KB

densities 1x/2x

PHP
$image->crop(400, 300)->densities(1, 2)
TWIG
{{ image|crop(400, 300)|densities(1, 2)|img(alt: 'densities 1x/2x') }}
myles-tan.jpg
intervention-gd
densities 1x/2x
569.8 µs 24.3 KB
intervention-imagick
densities 1x/2x
354.5 µs 24.2 KB
intervention-vips
densities 1x/2x
355.9 µs 24.2 KB
imagine-gd ▲ FASTEST
densities 1x/2x
310.3 µs 24.2 KB
imagine-imagick
densities 1x/2x
461.7 µs 24.2 KB
cloudflare
densities 1x/2x
399.4 µs 24.2 KB
cloudinary
densities 1x/2x
377.6 µs 24.3 KB
imagekit
densities 1x/2x
395.3 µs 24.3 KB
imgix
densities 1x/2x
343.8 µs 24.3 KB
gumlet
densities 1x/2x
309.1 µs 24.3 KB
bunny
densities 1x/2x
350.3 µs 24.3 KB
imgproxy
densities 1x/2x
385.0 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
densities 1x/2x
397.8 µs 24.3 KB
imagor
densities 1x/2x
390.8 µs 24.3 KB
wserv
densities 1x/2x
467.3 µs 24.3 KB

art direction

PHP
$image->crop(400, 400)->img(alt: 'art direction')
  ->at('(min-width: 768px)', $image->crop(800, 300))
  ->formats(Format::Webp)
TWIG
{{ image|picture(alt: 'art direction', sources: {'(min-width: 768px)': {crop: [800, 300]}}, formats: [enum('Chainsaw\\Enum\\Format').Webp]) }}
myles-tan.jpg
intervention-gd
art direction
1.05 ms 31.2 KB
intervention-imagick
art direction
1.84 ms 54.7 KB
intervention-vips
art direction
6.30 ms 75.0 KB
imagine-gd ▲ FASTEST
art direction
1.05 ms 90.3 KB
imagine-imagick
art direction
3.36 ms 84.7 KB
cloudflare
art direction
739.4 µs 31.1 KB
cloudinary
art direction
578.2 µs 31.2 KB
imagekit
art direction
561.2 µs 31.2 KB
imgix
art direction
626.6 µs 31.2 KB
gumlet
art direction
454.0 µs 31.2 KB
bunny
art direction
438.2 µs 31.2 KB
imgproxy
art direction
542.2 µs 31.2 KB
imgproxy-pro
Disabled provider not registered
thumbor
art direction
550.2 µs 31.2 KB
imagor
art direction
545.0 µs 31.2 KB
wserv
art direction
509.7 µs 31.2 KB