'driver' => 'auto', // or libvips | imagick | gdOrder: libvips → Imagick → GD.
auto (and an unavailable explicit driver) picks the first driver that is actually usable:
| Driver | Available when |
|---|---|
| libvips | php-vips class exists, FFI is enabled for the SAPI, and the native library loads (libvips.42.dylib / libvips.so.42) |
| Imagick | imagick PHP extension + Imagick class |
| GD | gd PHP extension |
The Composer package jcupitt/vips can be present in vendor/ while the native library is missing. Availability probes the dylib; it does not treat “PHP class exists” as enough.
If libvips still throws “Unable to open library …” at generate time, that driver is marked unusable for the rest of the request and generation replans on Imagick or GD.
If you set 'driver' => 'libvips' and the dylib cannot load, Super Images logs a warning and falls through the same order so playground and tags keep working.
Install native libvips (and set ffi.enable=true for that PHP SAPI) when you want libvips in production.
| Feature | Typical driver |
|---|---|
| fit / crop / fill / resize / scale / flip | All |
| rotate with background | Imagick preferred |
| sepia / saturation | Imagick |
| watermark (text or image), overlay, text | Imagick |
| blur / sharpen / brightness / contrast | All (options differ) |
php eecli.php super_images:doctorCP → Super Images → Diagnostics lists each driver as available or not, plus the selected driver.