intervention/image-laravel
Laravel integration for Intervention Image that provides a service provider, facade, and publishable configuration file, letting you set the image driver and options once centrally instead of repeating them on every image manager call.
config/intervention-image.php becomes the single source of truth for driver and defaults, so a platform team sets policy once (auto-orientation on, animation decoding, background color, metadata stripping) and every feature team inherits it instead of re-specifying per call site.strip option removes EXIF on encode, which lets you commit to "we strip GPS and camera metadata from user uploads by default" as a config-level guarantee rather than per-endpoint code review.ImageManagerInterface. You can ship on GD and swap later as an env change, not a refactor — a materially de-risked roadmap item.response()->image() reduce each to a few lines.Adopt when:
ImageManager at each call site.response()->image() macro are worth one dependency to you.Look elsewhere or skip when:
image → intervention.image) and config (image.php → intervention-image.php) collisions with Laravel's own integration. Running both is a known sharp edge — pick one deliberately and write it down.spatie/laravel-medialibrary, Glide, or a hosted service (Cloudinary/imgix). This package provides none of it.intervention/image directly.Watch-outs before committing:
For executives. A free (MIT), officially maintained Composer package that turns image handling — uploads, thumbnails, resizing, WebP conversion — into configuration instead of custom code. It removes a recurring build-from-scratch cost on every product surface that accepts images, centralizes image policy (including stripping location and camera metadata from user photos, a small compliance win), and lets us change the underlying image engine via config rather than a rewrite. Cost is one dependency and effectively zero license risk. The honest caveat: it is a thin convenience layer over a separate open-source library, and newer Laravel versions ship comparable image support themselves. So the decision is "which wiring do we standardize on," not "do we buy an image platform." We should choose one and state it explicitly, otherwise we end up with duplicate and conflicting image setup.
For engineering. composer require intervention/image-laravel, publish the config, and you're done. Inject ImageManagerInterface (or use the Image facade) and you get an app-wide-configured manager — driver, EXIF auto-orientation, animation decoding, background color, metadata stripping — without repeating constructor arguments. response()->image($image, Format::WEBP, quality: 65) collapses encode-and-return into one call. The surface is small and readable; the real capability lives upstream in intervention/image, so our version-pinning discipline matters more than the wrapper. Verify your Laravel version against the built-in image integration before adding this, and pin package-major to Intervention-major.
How can I help you explore Laravel packages today?