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

Combinations

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.

width(1200) → height(300)

PHP
$image->width(1200)->height(300)
TWIG
{{ image|width(1200)|height(300)|img(alt: 'width(1200) → height(300)') }}
myles-tan.jpg → 450×300
intervention-gd
width(1200) → height(300)
450×300 1.90 ms 63.1 KB
intervention-imagick
width(1200) → height(300)
450×300 461.4 µs 47.3 KB
intervention-vips
width(1200) → height(300)
450×300 759.0 µs 163.3 KB
imagine-gd
width(1200) → height(300)
450×300 755.7 µs 70.0 KB
imagine-imagick ▲ FASTEST JPG
width(1200) → height(300)
450×300 450.5 µs 47.6 KB
cloudflare
width(1200) → height(300)
450×300 541.4 µs 30.4 KB
cloudinary
width(1200) → height(300)
450×300 460.7 µs 100.8 KB
imagekit
width(1200) → height(300)
450×300 388.6 µs 31.3 KB
imgix
width(1200) → height(300)
450×300 337.3 µs 32.6 KB
gumlet
width(1200) → height(300)
450×300 339.5 µs 41.8 KB
bunny
width(1200) → height(300)
450×300 302.2 µs 27.0 KB
imgproxy
width(1200) → height(300)
450×300 372.3 µs 35.0 KB
imgproxy-pro
Disabled provider not registered
thumbor
width(1200) → height(300)
450×300 360.3 µs 32.2 KB
imagor
width(1200) → height(300)
450×300 358.6 µs 31.7 KB
wserv
width(1200) → height(300)
450×300 320.0 µs 32.4 KB

scale(2.0) → width(500)

PHP
$image->scale(2)->width(500)
TWIG
{{ image|scale(2)|width(500)|img(alt: 'scale(2.0) → width(500)') }}
myles-tan.jpg → 500×333
intervention-gd
scale(2.0) → width(500)
500×333 237.0 µs 24.3 KB
intervention-imagick
scale(2.0) → width(500)
500×333 183.9 µs 24.2 KB
intervention-vips
scale(2.0) → width(500)
500×333 163.3 µs 24.2 KB
imagine-gd
scale(2.0) → width(500)
500×333 159.0 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
scale(2.0) → width(500)
500×333 137.8 µs 24.2 KB
cloudflare
scale(2.0) → width(500)
500×333 196.6 µs 24.2 KB
cloudinary
scale(2.0) → width(500)
500×333 219.0 µs 24.3 KB
imagekit
scale(2.0) → width(500)
500×333 224.5 µs 24.3 KB
imgix
scale(2.0) → width(500)
500×333 202.3 µs 24.3 KB
gumlet
scale(2.0) → width(500)
500×333 176.8 µs 24.3 KB
bunny
scale(2.0) → width(500)
500×333 162.0 µs 24.3 KB
imgproxy
scale(2.0) → width(500)
500×333 223.5 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
scale(2.0) → width(500)
500×333 212.4 µs 24.3 KB
imagor
scale(2.0) → width(500)
500×333 202.6 µs 24.3 KB
wserv
scale(2.0) → width(500)
500×333 166.6 µs 24.3 KB

width(1500) → cover(400,400)

PHP
$image->width(1500)->cover(400, 400)
TWIG
{{ image|width(1500)|cover(400, 400)|img(alt: 'width(1500) → cover(400,400)') }}
myles-tan.jpg → 400×400
intervention-gd
width(1500) → cover(400,400)
400×400 256.0 µs 24.3 KB
intervention-imagick
width(1500) → cover(400,400)
400×400 165.6 µs 24.2 KB
intervention-vips
width(1500) → cover(400,400)
400×400 189.4 µs 24.2 KB
imagine-gd
width(1500) → cover(400,400)
400×400 161.0 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
width(1500) → cover(400,400)
400×400 150.0 µs 24.2 KB
cloudflare
width(1500) → cover(400,400)
400×400 207.1 µs 24.2 KB
cloudinary
width(1500) → cover(400,400)
400×400 203.8 µs 24.3 KB
imagekit
width(1500) → cover(400,400)
400×400 200.5 µs 24.3 KB
imgix
width(1500) → cover(400,400)
400×400 207.6 µs 24.3 KB
gumlet
width(1500) → cover(400,400)
400×400 175.8 µs 24.3 KB
bunny
width(1500) → cover(400,400)
400×400 167.7 µs 24.3 KB
imgproxy
width(1500) → cover(400,400)
400×400 202.3 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
width(1500) → cover(400,400)
400×400 211.2 µs 24.3 KB
imagor
width(1500) → cover(400,400)
400×400 225.3 µs 24.3 KB
wserv
width(1500) → cover(400,400)
400×400 202.4 µs 24.3 KB

cover(600,400) → width(300)

PHP
$image->cover(600, 400)->width(300)
TWIG
{{ image|cover(600, 400)|width(300)|img(alt: 'cover(600,400) → width(300)') }}
myles-tan.jpg → 300×200
intervention-gd
cover(600,400) → width(300)
300×200 204.4 µs 24.3 KB
intervention-imagick
cover(600,400) → width(300)
300×200 149.4 µs 24.2 KB
intervention-vips
cover(600,400) → width(300)
300×200 135.2 µs 24.2 KB
imagine-gd ▲ FASTEST JPG
cover(600,400) → width(300)
300×200 131.8 µs 24.2 KB
imagine-imagick
cover(600,400) → width(300)
300×200 186.2 µs 24.2 KB
cloudflare
cover(600,400) → width(300)
300×200 225.4 µs 24.2 KB
cloudinary
cover(600,400) → width(300)
300×200 211.3 µs 24.3 KB
imagekit
cover(600,400) → width(300)
300×200 205.2 µs 24.3 KB
imgix
cover(600,400) → width(300)
300×200 200.8 µs 24.3 KB
gumlet
cover(600,400) → width(300)
300×200 187.8 µs 24.3 KB
bunny
cover(600,400) → width(300)
300×200 173.2 µs 24.3 KB
imgproxy
cover(600,400) → width(300)
300×200 202.1 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
cover(600,400) → width(300)
300×200 213.5 µs 24.3 KB
imagor
cover(600,400) → width(300)
300×200 210.4 µs 24.3 KB
wserv
cover(600,400) → width(300)
300×200 170.1 µs 24.3 KB

cover(800,300) → height(150)

PHP
$image->cover(800, 300)->height(150)
TWIG
{{ image|cover(800, 300)|height(150)|img(alt: 'cover(800,300) → height(150)') }}
myles-tan.jpg → 400×150
intervention-gd
cover(800,300) → height(150)
400×150 172.4 µs 24.3 KB
intervention-imagick
cover(800,300) → height(150)
400×150 180.1 µs 24.2 KB
intervention-vips
cover(800,300) → height(150)
400×150 154.0 µs 24.2 KB
imagine-gd ▲ FASTEST JPG
cover(800,300) → height(150)
400×150 149.5 µs 24.2 KB
imagine-imagick
cover(800,300) → height(150)
400×150 159.0 µs 24.2 KB
cloudflare
cover(800,300) → height(150)
400×150 221.8 µs 24.2 KB
cloudinary
cover(800,300) → height(150)
400×150 227.0 µs 24.3 KB
imagekit
cover(800,300) → height(150)
400×150 221.9 µs 24.3 KB
imgix
cover(800,300) → height(150)
400×150 192.2 µs 24.3 KB
gumlet
cover(800,300) → height(150)
400×150 215.0 µs 24.3 KB
bunny
cover(800,300) → height(150)
400×150 184.3 µs 24.3 KB
imgproxy
cover(800,300) → height(150)
400×150 204.4 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
cover(800,300) → height(150)
400×150 202.8 µs 24.3 KB
imagor
cover(800,300) → height(150)
400×150 211.4 µs 24.3 KB
wserv
cover(800,300) → height(150)
400×150 181.5 µs 24.3 KB

contain(800,600) → scale(0.5)

PHP
$image->contain(800, 600)->scale(0.5)
TWIG
{{ image|contain(800, 600)|scale(0.5)|img(alt: 'contain(800,600) → scale(0.5)') }}
myles-tan.jpg → 400×267
intervention-gd
contain(800,600) → scale(0.5)
400×267 235.7 µs 24.3 KB
intervention-imagick
contain(800,600) → scale(0.5)
400×267 153.4 µs 24.2 KB
intervention-vips
contain(800,600) → scale(0.5)
400×267 161.7 µs 24.2 KB
imagine-gd
contain(800,600) → scale(0.5)
400×267 160.6 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
contain(800,600) → scale(0.5)
400×267 140.2 µs 24.2 KB
cloudflare
contain(800,600) → scale(0.5)
400×267 205.1 µs 24.2 KB
cloudinary
contain(800,600) → scale(0.5)
400×267 223.0 µs 24.3 KB
imagekit
contain(800,600) → scale(0.5)
400×267 220.5 µs 24.3 KB
imgix
contain(800,600) → scale(0.5)
400×267 191.4 µs 24.3 KB
gumlet
contain(800,600) → scale(0.5)
400×267 171.4 µs 24.3 KB
bunny
contain(800,600) → scale(0.5)
400×267 196.5 µs 24.3 KB
imgproxy
contain(800,600) → scale(0.5)
400×267 214.3 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
contain(800,600) → scale(0.5)
400×267 209.4 µs 24.3 KB
imagor
contain(800,600) → scale(0.5)
400×267 228.6 µs 24.3 KB
wserv
contain(800,600) → scale(0.5)
400×267 237.5 µs 24.3 KB

contain(500,500) → cover(400,300)

PHP
$image->contain(500, 500)->cover(400, 300)
TWIG
{{ image|contain(500, 500)|cover(400, 300)|img(alt: 'contain(500,500) → cover(400,300)') }}
myles-tan.jpg → 400×300
intervention-gd
contain(500,500) → cover(400,300)
400×300 197.0 µs 24.3 KB
intervention-imagick
contain(500,500) → cover(400,300)
400×300 149.6 µs 24.2 KB
intervention-vips ▲ FASTEST JPG
contain(500,500) → cover(400,300)
400×300 139.6 µs 24.2 KB
imagine-gd
contain(500,500) → cover(400,300)
400×300 174.7 µs 24.2 KB
imagine-imagick
contain(500,500) → cover(400,300)
400×300 173.6 µs 24.2 KB
cloudflare
contain(500,500) → cover(400,300)
400×300 215.7 µs 24.2 KB
cloudinary
contain(500,500) → cover(400,300)
400×300 233.8 µs 24.3 KB
imagekit
contain(500,500) → cover(400,300)
400×300 239.0 µs 24.3 KB
imgix
contain(500,500) → cover(400,300)
400×300 192.8 µs 24.3 KB
gumlet
contain(500,500) → cover(400,300)
400×300 170.0 µs 24.3 KB
bunny
contain(500,500) → cover(400,300)
400×300 163.6 µs 24.3 KB
imgproxy
contain(500,500) → cover(400,300)
400×300 239.5 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
contain(500,500) → cover(400,300)
400×300 223.7 µs 24.3 KB
imagor
contain(500,500) → cover(400,300)
400×300 201.6 µs 24.3 KB
wserv
contain(500,500) → cover(400,300)
400×300 170.8 µs 24.3 KB

stretch(300,300) → pad(400,400)

PHP
$image->stretch(300, 300)->pad(400, 400, '#3b82f6')
TWIG
{{ image|stretch(300, 300)|pad(400, 400, '#3b82f6')|img(alt: 'stretch(300,300) → pad(400,400)') }}
myles-tan.jpg → 400×400
intervention-gd
stretch(300,300) → pad(400,400)
400×400 308.7 µs 24.3 KB
intervention-imagick
stretch(300,300) → pad(400,400)
400×400 158.3 µs 24.2 KB
intervention-vips
stretch(300,300) → pad(400,400)
400×400 139.9 µs 24.2 KB
imagine-gd ▲ FASTEST JPG
stretch(300,300) → pad(400,400)
400×400 138.4 µs 24.2 KB
imagine-imagick
stretch(300,300) → pad(400,400)
400×400 150.9 µs 24.2 KB
cloudflare
stretch(300,300) → pad(400,400)
400×400 212.8 µs 24.2 KB
cloudinary
stretch(300,300) → pad(400,400)
400×400 204.3 µs 24.3 KB
imagekit
stretch(300,300) → pad(400,400)
400×400 247.4 µs 24.3 KB
imgix
stretch(300,300) → pad(400,400)
400×400 243.0 µs 24.3 KB
gumlet
stretch(300,300) → pad(400,400)
400×400 216.2 µs 24.3 KB
bunny
— Unsupported
imgproxy
stretch(300,300) → pad(400,400)
400×400 222.8 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
stretch(300,300) → pad(400,400)
400×400 241.9 µs 24.3 KB
imagor
stretch(300,300) → pad(400,400)
400×400 198.9 µs 24.3 KB
wserv
stretch(300,300) → pad(400,400)
400×400 193.0 µs 24.3 KB

cover(600,400) → cropToRatio(1:1)

PHP
$image->cover(600, 400)->cropToRatio('1:1')
TWIG
{{ image|cover(600, 400)|cropToRatio('1:1')|img(alt: 'cover(600,400) → cropToRatio(1:1)') }}
myles-tan.jpg → 400×400
intervention-gd
cover(600,400) → cropToRatio(1:1)
400×400 367.8 µs 24.3 KB
intervention-imagick
cover(600,400) → cropToRatio(1:1)
400×400 173.8 µs 24.2 KB
intervention-vips
cover(600,400) → cropToRatio(1:1)
400×400 149.3 µs 24.2 KB
imagine-gd ▲ FASTEST JPG
cover(600,400) → cropToRatio(1:1)
400×400 142.6 µs 24.2 KB
imagine-imagick
cover(600,400) → cropToRatio(1:1)
400×400 163.8 µs 24.2 KB
cloudflare
cover(600,400) → cropToRatio(1:1)
400×400 209.4 µs 24.2 KB
cloudinary
cover(600,400) → cropToRatio(1:1)
400×400 216.4 µs 24.3 KB
imagekit
cover(600,400) → cropToRatio(1:1)
400×400 249.8 µs 24.3 KB
imgix
cover(600,400) → cropToRatio(1:1)
400×400 201.6 µs 24.3 KB
gumlet
cover(600,400) → cropToRatio(1:1)
400×400 180.2 µs 24.3 KB
bunny
cover(600,400) → cropToRatio(1:1)
400×400 175.3 µs 24.3 KB
imgproxy
cover(600,400) → cropToRatio(1:1)
400×400 219.3 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
cover(600,400) → cropToRatio(1:1)
400×400 236.4 µs 24.3 KB
imagor
cover(600,400) → cropToRatio(1:1)
400×400 255.3 µs 24.3 KB
wserv
cover(600,400) → cropToRatio(1:1)
400×400 188.0 µs 24.3 KB

pad(500,500) → padToRatio(16:9)

PHP
$image->pad(500, 500, '#3b82f6')->padToRatio('16:9', '#3b82f6')
TWIG
{{ image|pad(500, 500, '#3b82f6')|padToRatio('16:9', '#3b82f6')|img(alt: 'pad(500,500) → padToRatio(16:9)') }}
myles-tan.jpg → 889×500
intervention-gd
pad(500,500) → padToRatio(16:9)
889×500 260.0 µs 24.3 KB
intervention-imagick
pad(500,500) → padToRatio(16:9)
889×500 156.0 µs 24.2 KB
intervention-vips
pad(500,500) → padToRatio(16:9)
889×500 140.6 µs 24.2 KB
imagine-gd
pad(500,500) → padToRatio(16:9)
889×500 139.0 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
pad(500,500) → padToRatio(16:9)
889×500 131.9 µs 24.2 KB
cloudflare
pad(500,500) → padToRatio(16:9)
889×500 215.3 µs 24.2 KB
cloudinary
pad(500,500) → padToRatio(16:9)
889×500 205.3 µs 24.3 KB
imagekit
pad(500,500) → padToRatio(16:9)
889×500 239.0 µs 24.3 KB
imgix
pad(500,500) → padToRatio(16:9)
889×500 244.9 µs 24.3 KB
gumlet
pad(500,500) → padToRatio(16:9)
889×500 190.1 µs 24.3 KB
bunny
— Unsupported
imgproxy
pad(500,500) → padToRatio(16:9)
889×500 209.3 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
pad(500,500) → padToRatio(16:9)
889×500 223.4 µs 24.3 KB
imagor
pad(500,500) → padToRatio(16:9)
889×500 220.4 µs 24.3 KB
wserv
pad(500,500) → padToRatio(16:9)
889×500 174.6 µs 24.3 KB

cropToRatio(16:9) → width(480)

PHP
$image->cropToRatio('16:9')->width(480)
TWIG
{{ image|cropToRatio('16:9')|width(480)|img(alt: 'cropToRatio(16:9) → width(480)') }}
myles-tan.jpg → 480×270
intervention-gd
cropToRatio(16:9) → width(480)
480×270 185.8 µs 24.3 KB
intervention-imagick
cropToRatio(16:9) → width(480)
480×270 189.8 µs 24.2 KB
intervention-vips
cropToRatio(16:9) → width(480)
480×270 156.4 µs 24.2 KB
imagine-gd
cropToRatio(16:9) → width(480)
480×270 138.0 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
cropToRatio(16:9) → width(480)
480×270 131.7 µs 24.2 KB
cloudflare
cropToRatio(16:9) → width(480)
480×270 191.6 µs 24.2 KB
cloudinary
cropToRatio(16:9) → width(480)
480×270 217.9 µs 24.3 KB
imagekit
cropToRatio(16:9) → width(480)
480×270 205.1 µs 24.3 KB
imgix
cropToRatio(16:9) → width(480)
480×270 186.0 µs 24.3 KB
gumlet
cropToRatio(16:9) → width(480)
480×270 239.9 µs 24.3 KB
bunny
cropToRatio(16:9) → width(480)
480×270 194.8 µs 24.3 KB
imgproxy
cropToRatio(16:9) → width(480)
480×270 218.1 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
cropToRatio(16:9) → width(480)
480×270 212.8 µs 24.3 KB
imagor
cropToRatio(16:9) → width(480)
480×270 258.7 µs 24.3 KB
wserv
cropToRatio(16:9) → width(480)
480×270 198.6 µs 24.3 KB

padToRatio(4:3) → height(300)

PHP
$image->padToRatio('4:3', '#3b82f6')->height(300)
TWIG
{{ image|padToRatio('4:3', '#3b82f6')|height(300)|img(alt: 'padToRatio(4:3) → height(300)') }}
myles-tan.jpg → 400×300
intervention-gd
padToRatio(4:3) → height(300)
400×300 177.3 µs 24.3 KB
intervention-imagick
padToRatio(4:3) → height(300)
400×300 140.2 µs 24.2 KB
intervention-vips
padToRatio(4:3) → height(300)
400×300 163.7 µs 24.2 KB
imagine-gd
padToRatio(4:3) → height(300)
400×300 148.9 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
padToRatio(4:3) → height(300)
400×300 133.4 µs 24.2 KB
cloudflare
padToRatio(4:3) → height(300)
400×300 205.8 µs 24.2 KB
cloudinary
padToRatio(4:3) → height(300)
400×300 279.8 µs 24.3 KB
imagekit
padToRatio(4:3) → height(300)
400×300 231.4 µs 24.3 KB
imgix
padToRatio(4:3) → height(300)
400×300 188.2 µs 24.3 KB
gumlet
padToRatio(4:3) → height(300)
400×300 200.6 µs 24.3 KB
bunny
— Unsupported
imgproxy
padToRatio(4:3) → height(300)
400×300 217.0 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
padToRatio(4:3) → height(300)
400×300 204.9 µs 24.3 KB
imagor
padToRatio(4:3) → height(300)
400×300 202.3 µs 24.3 KB
wserv
padToRatio(4:3) → height(300)
400×300 183.7 µs 24.3 KB

cropToRatio(1:1) → cover(400,300)

PHP
$image->cropToRatio('1:1')->cover(400, 300)
TWIG
{{ image|cropToRatio('1:1')|cover(400, 300)|img(alt: 'cropToRatio(1:1) → cover(400,300)') }}
myles-tan.jpg → 400×300
intervention-gd
cropToRatio(1:1) → cover(400,300)
400×300 181.4 µs 24.3 KB
intervention-imagick
cropToRatio(1:1) → cover(400,300)
400×300 147.6 µs 24.2 KB
intervention-vips
cropToRatio(1:1) → cover(400,300)
400×300 139.2 µs 24.2 KB
imagine-gd ▲ FASTEST JPG
cropToRatio(1:1) → cover(400,300)
400×300 135.8 µs 24.2 KB
imagine-imagick
cropToRatio(1:1) → cover(400,300)
400×300 159.3 µs 24.2 KB
cloudflare
cropToRatio(1:1) → cover(400,300)
400×300 199.1 µs 24.2 KB
cloudinary
cropToRatio(1:1) → cover(400,300)
400×300 216.1 µs 24.3 KB
imagekit
cropToRatio(1:1) → cover(400,300)
400×300 231.6 µs 24.3 KB
imgix
cropToRatio(1:1) → cover(400,300)
400×300 199.4 µs 24.3 KB
gumlet
cropToRatio(1:1) → cover(400,300)
400×300 178.2 µs 24.3 KB
bunny
cropToRatio(1:1) → cover(400,300)
400×300 194.1 µs 24.3 KB
imgproxy
cropToRatio(1:1) → cover(400,300)
400×300 337.0 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
cropToRatio(1:1) → cover(400,300)
400×300 252.0 µs 24.3 KB
imagor
cropToRatio(1:1) → cover(400,300)
400×300 242.8 µs 24.3 KB
wserv
cropToRatio(1:1) → cover(400,300)
400×300 229.0 µs 24.3 KB

cropToRatio(16:9) → padToRatio(1:1)

PHP
$image->cropToRatio('16:9')->padToRatio('1:1', '#3b82f6')
TWIG
{{ image|cropToRatio('16:9')|padToRatio('1:1', '#3b82f6')|img(alt: 'cropToRatio(16:9) → padToRatio(1:1)') }}
myles-tan.jpg → 1920×1920
intervention-gd
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 209.0 µs 24.3 KB
intervention-imagick
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 160.1 µs 24.2 KB
intervention-vips ▲ FASTEST JPG
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 148.0 µs 24.2 KB
imagine-gd
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 160.5 µs 24.2 KB
imagine-imagick
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 151.9 µs 24.2 KB
cloudflare
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 213.0 µs 24.2 KB
cloudinary
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 208.8 µs 24.3 KB
imagekit
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 244.2 µs 24.3 KB
imgix
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 202.3 µs 24.3 KB
gumlet
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 176.5 µs 24.3 KB
bunny
— Unsupported
imgproxy
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 248.2 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 219.3 µs 24.3 KB
imagor
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 201.3 µs 24.3 KB
wserv
cropToRatio(16:9) → padToRatio(1:1)
1920×1920 175.6 µs 24.3 KB

width(480) + cropToRatio(16:9)

PHP
$image->width(480)->cropToRatio('16:9')
TWIG
{{ image|width(480)|cropToRatio('16:9')|img(alt: 'width(480) + cropToRatio(16:9)') }}
myles-tan.jpg → 480×270
intervention-gd
width(480) + cropToRatio(16:9)
480×270 227.7 µs 24.3 KB
intervention-imagick
width(480) + cropToRatio(16:9)
480×270 164.4 µs 24.2 KB
intervention-vips
width(480) + cropToRatio(16:9)
480×270 148.0 µs 24.2 KB
imagine-gd
width(480) + cropToRatio(16:9)
480×270 152.6 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
width(480) + cropToRatio(16:9)
480×270 144.7 µs 24.2 KB
cloudflare
width(480) + cropToRatio(16:9)
480×270 228.6 µs 24.2 KB
cloudinary
width(480) + cropToRatio(16:9)
480×270 247.1 µs 24.3 KB
imagekit
width(480) + cropToRatio(16:9)
480×270 240.1 µs 24.3 KB
imgix
width(480) + cropToRatio(16:9)
480×270 237.6 µs 24.3 KB
gumlet
width(480) + cropToRatio(16:9)
480×270 195.4 µs 24.3 KB
bunny
width(480) + cropToRatio(16:9)
480×270 187.3 µs 24.3 KB
imgproxy
width(480) + cropToRatio(16:9)
480×270 238.6 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
width(480) + cropToRatio(16:9)
480×270 225.2 µs 24.3 KB
imagor
width(480) + cropToRatio(16:9)
480×270 206.2 µs 24.3 KB
wserv
width(480) + cropToRatio(16:9)
480×270 179.8 µs 24.3 KB

width(800) → cropToRatio(16:9) → height(240)

PHP
$image->width(800)->cropToRatio('16:9')->height(240)
TWIG
{{ image|width(800)|cropToRatio('16:9')|height(240)|img(alt: 'width(800) → cropToRatio(16:9) → height(240)') }}
myles-tan.jpg → 427×240
intervention-gd
width(800) → cropToRatio(16:9) → height(240)
427×240 227.8 µs 24.3 KB
intervention-imagick
width(800) → cropToRatio(16:9) → height(240)
427×240 165.7 µs 24.2 KB
intervention-vips
width(800) → cropToRatio(16:9) → height(240)
427×240 148.2 µs 24.2 KB
imagine-gd
width(800) → cropToRatio(16:9) → height(240)
427×240 157.8 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
width(800) → cropToRatio(16:9) → height(240)
427×240 147.5 µs 24.2 KB
cloudflare
width(800) → cropToRatio(16:9) → height(240)
427×240 225.0 µs 24.2 KB
cloudinary
width(800) → cropToRatio(16:9) → height(240)
427×240 218.0 µs 24.3 KB
imagekit
width(800) → cropToRatio(16:9) → height(240)
427×240 210.8 µs 24.3 KB
imgix
width(800) → cropToRatio(16:9) → height(240)
427×240 260.2 µs 24.3 KB
gumlet
width(800) → cropToRatio(16:9) → height(240)
427×240 199.0 µs 24.3 KB
bunny
width(800) → cropToRatio(16:9) → height(240)
427×240 186.6 µs 24.3 KB
imgproxy
width(800) → cropToRatio(16:9) → height(240)
427×240 253.8 µs 24.3 KB
imgproxy-pro
Disabled provider not registered
thumbor
width(800) → cropToRatio(16:9) → height(240)
427×240 256.4 µs 24.3 KB
imagor
width(800) → cropToRatio(16:9) → height(240)
427×240 229.8 µs 24.3 KB
wserv
width(800) → cropToRatio(16:9) → height(240)
427×240 189.9 µs 24.3 KB

width(1500) → greyscale → cover(400,400)

PHP
$image->width(1500)->greyscale()->cover(400, 400)
TWIG
{{ image|width(1500)|greyscale|cover(400, 400)|img(alt: 'width(1500) → greyscale → cover(400,400)') }}
myles-tan.jpg → 400×400
intervention-gd
width(1500) → greyscale → cover(400,400)
400×400 241.9 µs 24.3 KB
intervention-imagick
width(1500) → greyscale → cover(400,400)
400×400 175.2 µs 24.2 KB
intervention-vips
width(1500) → greyscale → cover(400,400)
400×400 161.7 µs 24.2 KB
imagine-gd
width(1500) → greyscale → cover(400,400)
400×400 146.0 µs 24.2 KB
imagine-imagick ▲ FASTEST JPG
width(1500) → greyscale → cover(400,400)
400×400 138.1 µs 24.2 KB
cloudflare
width(1500) → greyscale → cover(400,400)
400×400 239.5 µs 24.2 KB
cloudinary
width(1500) → greyscale → cover(400,400)
400×400 232.3 µs 24.3 KB
imagekit
width(1500) → greyscale → cover(400,400)
400×400 218.2 µs 24.3 KB
imgix
width(1500) → greyscale → cover(400,400)
400×400 192.8 µs 24.3 KB
gumlet
width(1500) → greyscale → cover(400,400)
400×400 199.8 µs 24.3 KB
bunny
width(1500) → greyscale → cover(400,400)
400×400 180.2 µs 24.3 KB
imgproxy
— Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
width(1500) → greyscale → cover(400,400)
400×400 305.9 µs 24.3 KB
imagor
width(1500) → greyscale → cover(400,400)
400×400 232.5 µs 24.3 KB
wserv
width(1500) → greyscale → cover(400,400)
400×400 196.7 µs 24.3 KB

contain→crop + grey + sharpen + WM + webp

PHP
$image->contain(1000, 1000)->crop(600, 400)->greyscale()->contrast(20)->sharpen(30)->watermark('timber-tree-green.png', Position::BottomRight, paddingX: 10, paddingY: 10, width: 25, sizeUnit: Unit::Percent, alpha: 70)->format(Format::Webp)->quality(90)
TWIG
{{ image|contain(1000, 1000)|crop(600, 400)|greyscale|contrast(20)|sharpen(30)|watermark('timber-tree-green.png', enum('Chainsaw\\Enum\\Position').BottomRight, paddingX=10, paddingY=10, width=25, sizeUnit=enum('Chainsaw\\Enum\\Unit').Percent, alpha=70)|to(enum('Chainsaw\\Enum\\Format').Webp)|quality(90)|img(alt: 'contain→crop + grey + sharpen + WM + webp') }}
myles-tan.jpg → 600×400
intervention-gd ▲ FASTEST WEBP
contain→crop + grey + sharpen + WM + webp
600×400 598.2 µs 27.2 KB
intervention-imagick
contain→crop + grey + sharpen + WM + webp
600×400 1.61 ms 48.2 KB
intervention-vips
contain→crop + grey + sharpen + WM + webp
600×400 8.26 ms 67.8 KB
imagine-gd
— Unsupported
imagine-imagick
— Unsupported
cloudflare
— Unsupported
cloudinary
contain→crop + grey + sharpen + WM + webp
600×400 322.1 µs 24.3 KB
imagekit
— Unsupported
imgix
contain→crop + grey + sharpen + WM + webp
600×400 297.2 µs 24.3 KB
gumlet
— Unsupported
bunny
— Unsupported
imgproxy
— Unsupported
imgproxy-pro
Disabled provider not registered
thumbor
contain→crop + grey + sharpen + WM + webp
600×400 290.0 µs 24.3 KB
imagor
contain→crop + grey + sharpen + WM + webp
600×400 349.4 µs 24.3 KB
wserv
— Unsupported