Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Picasso Laravel Package

laravelista/picasso

Picasso is a Laravel package for simple, fluent image manipulation. Resize, crop, and cache images stored on any filesystem disk, generate thumbnails, and keep your originals untouched. It fits neatly into Laravel's filesystem and works with local or cloud storage.

View on GitHub
Deep Wiki
Context7

Laravel Image Management and Optimization Package

Frequently asked questions about Picasso
How do I install laravelista/picasso in a Laravel app?
Install it with Composer by running composer require laravelista/picasso in your Laravel project. Laravel package discovery should register the service provider, and you then configure the filesystem disk you want Picasso to use. Confirm your PHP version satisfies the package's composer.json constraints before installing, especially if you are still on PHP 7.4.
What PHP and Laravel versions does Picasso require?
Picasso 0.8.0 moved to native type declarations and named arguments, which means it requires PHP 8.0 or newer and uses modern PHP 8.1/8.2 idioms. Laravel support is defined by the illuminate/* constraints in composer.json, so check those for the exact version you install. Do not assume the Laravel support matrix is identical to 0.7.x just because the release has no new features.
How do I resize and crop images with Picasso?
Picasso provides a fluent API: choose an image stored on a Laravel filesystem disk, chain resize and crop operations, and let the package write the manipulated result to its cache. You can use the same approach to generate thumbnails. The source image is left untouched, so you can safely request different dimensions without destroying the original.
Does Picasso modify my original images?
No. Picasso keeps your originals untouched and writes resized, cropped, or thumbnail versions to a cache on the configured filesystem disk. That makes it safe to generate multiple variants of the same source image.
Can Picasso work with S3 or other cloud storage?
Yes. Picasso works with any Laravel filesystem disk, including local storage and cloud disks such as S3. You configure the disk in Laravel as usual, then point Picasso at images on that disk. Check disk visibility and URL settings if cached images must be publicly accessible.
Is Picasso safe to use in production?
Picasso can be used in production, but treat it as a pre-1.0 package: pin a specific version or a careful constraint because 0.x releases can break in minor versions. Test image generation and cache behavior on your real disk, including cloud storage permissions and cache invalidation. If you rely on static analysis or named arguments, include those checks in CI before upgrading.
How does image caching work in Picasso?
Picasso caches manipulated images on the filesystem disk you configure, so repeated requests for the same resize, crop, or thumbnail operation can reuse the generated file. The original remains the source of truth. Plan how cached files are invalidated or cleared when source images change or when you change manipulation parameters.
What changed in Picasso 0.8.0 and is it a breaking upgrade?
Picasso 0.8.0 is a language-level modernization release rather than a feature release. It removes docblocks in favor of native type declarations and adopts named arguments, with no visible functional payload. That buys compatibility with modern PHP but can break static-analysis tooling and code that calls package APIs with named arguments.
Why did static analysis break after upgrading Picasso to 0.8.0?
Picasso 0.8.0 dropped docblocks that may have carried @param, @method, @property, generic, or array-shape information that native PHP types cannot fully express. PHPStan, Psalm, IDE completion, and Laravel IDE-helper stubs can therefore report new errors even when runtime tests pass. Re-baseline or update suppressions deliberately and check whether parameter names are now part of the public contract.
How should I migrate from Picasso 0.7.x to 0.8.0?
Inventory every service and internal package that depends on Picasso and record its current constraint. Confirm each runtime meets the new PHP floor and check the illuminate/* constraints before assuming 0.7.x parity. Upgrade in a non-production branch, run tests plus static analysis, and grep for named-argument calls into Picasso APIs; if you are stuck on PHP 7.4, stay on the 0.7.x line and confirm it remains patched.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo