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

Php Image Resize Laravel Package

gumlet/php-image-resize

Resize, scale, and crop images in PHP with a simple, typed API. Requires PHP 8.1+ with gd and fileinfo, supports files, data URLs, and binary strings, and handles enlargement limits and multiple crop modes.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for image handling. This package is the cheap middle path between writing your own GD/Imagick wrapper and paying for a managed image CDN. It answers "do we need a media service vendor yet?" with a useful no for most early-stage products: resize, scale, and crop are commodity operations, and this library covers them in ~a day of integration work. Revisit the buy decision only when you need global edge delivery, on-the-fly transforms at scale, or smart cropping.
  • Feature scoping for upload-driven surfaces. Thumbnail grids, avatar uploads, product catalog imagery, CMS media libraries, blog hero images, and OG/social preview images are all the same underlying requirement. This supports estimating that work as a one-sprint item rather than a multi-sprint media platform build.
  • Roadmap sequencing for a "media pipeline" epic. Because the library is synchronous and in-process, adopting it implicitly commits you to synchronous resizing on the request path. That is a legitimate v1 decision, but it defers the queue-based/async pipeline work to a later milestone. Be explicit about that in the roadmap, because retrofitting async processing after launch means reworking upload endpoints and storage contracts.
  • Storage and CDN strategy. Deriving multiple renditions per upload multiplies object storage and egress. This package makes generating 3–4 sizes trivial, which is good for UX but has a real cost line; the decision to pre-generate renditions vs. generate-on-first-request vs. delegate to a CDN is downstream of choosing this library.
  • Framework integration posture. It is framework-agnostic: no Laravel service provider, no facade, no publishable config. That is a deliberate trade — near-zero lock-in and a ~20-line wrapper class in your app, versus a tighter integration like Intervention Image's Laravel package. For a PM this is a small, contained piece of technical debt owned by your team, not the vendor.
  • Upgrade and platform decisions. The 3.x line requires PHP 8.1+ and the gd and fileinfo extensions; 2.x covers PHP 7.2–8.0. If you are on Laravel 10+ (PHP 8.1+) you are already inside the supported matrix. If you maintain older apps, you are pinned to a line that will eventually stop getting fixes — factor that into any modernization conversation.
  • Use cases to say yes to: admin/CMS thumbnail generation, user avatars with fixed crop ratios, marketplace listing images, email template assets, and social preview image rendering.
  • Use cases to say no to: user-facing real-time transform APIs (/img/w=300&h=200), video, PDF rasterization, and anything requiring smart/subject-aware cropping.

When to Consider This Package

Adopt when most of these hold:

  • PHP 8.1+ (or 7.2–8.0 on the 2.x line) with gd and fileinfo available — verify this against your actual production image, not just local dev; GD is frequently missing from slim container images.
  • Requirements are genuinely simple: resize to a bounding box, crop to a fixed aspect ratio, scale by percentage. No need for advanced filters, format negotiation, or art-direction-style responsive crops.
  • Volume is modest and resizing fits within a request or a single queued job. GD is memory-hungry on large source images, so you need sane upload caps regardless of library choice.
  • You want MIT licensing with no commercial entanglement. Gumlet's cloud product is an upsell in the README, but the library stands alone and is forkable.
  • You are comfortable owning the Laravel glue yourself: a thin service class, upload validation, and a disk/storage convention.

Look elsewhere when:

  • You need a Laravel-native API. Intervention Image gives you a richer, well-known API and a Laravel integration path; Spatie Media Library gives you model-attached media, conversions, and responsive images out of the box. If media is core to the product, that abstraction pays for itself.
  • You need managed delivery. Cloudinary, imgix, Gumlet's own CDN, or a Laravel-plus-CloudFront setup will beat in-process resizing on latency, cache hit rate, and format negotiation.
  • You need modern format strategy. If AVIF/WebP negotiation, per-device format selection, or quality tuning is a product requirement, evaluate encoding support in the library you pick before committing.
  • You need throughput or async guarantees. Server-side processing competes with request latency and CPU. At meaningful scale, this becomes a queue-and-worker design problem, and the resizing library is the least interesting part of that decision.
  • Ecosystem adoption is your risk proxy. The package shows 1.2k stars but a very thin dependent footprint, which means fewer battle-tested edge cases and a smaller pool of people who have hit your bug. That is not disqualifying for a utility this narrow, but it argues for pinning a version, wrapping it behind your own interface, and keeping the swap to Intervention Image cheap.
  • You need smart cropping, face detection, background removal, or watermarking. Out of scope.

How to Pitch It (Stakeholders)

To executives: We need image resizing for [upload feature]. The options are (a) build it ourselves, (b) adopt a small open-source library, or (c) pay for a managed image service. This library is option (b): MIT-licensed, actively released, ~1.2k GitHub stars, and it covers exactly the operations we need — resize, scale, crop — with no vendor contract and no per-image fees. It gets the feature shipped in the current milestone. Option (c) becomes worth revisiting if we need global image delivery or high-volume transform volume, at which point the migration is contained because we will have isolated the library behind a single internal service class.

To engineering: Framework-agnostic PHP, Composer-installable, PHP 8.1+ with gd and fileinfo. No service provider or facade — we write a small wrapper and own the wiring, which is the trade we want: minimal coupling, easy to swap for Intervention Image if requirements grow. Two things to plan for: GD loads full images into memory, so we enforce upload size limits and likely move resizing into a queued job; and we re-encode on write to strip EXIF and normalize output. Pin the major version, keep the wrapper interface narrow, and add tests around aspect-ratio and bounding-box behavior so a future library swap is a one-file change.

Risks to state plainly: the package is maintained by a company that sells a competing cloud product — MIT licensing makes that structurally safe, but it is worth naming. Ecosystem adoption is thin, so we treat it as a well-scoped utility rather than a platform bet. And synchronous resizing is a v1 decision, not a permanent architecture.

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.
hotmeteor/eco-env
mvaliolahi/hydrate
wearede/tbcpay-php
parsnick/steak
thibaud-dauce/mattermost-php
multilinguals/apollo-client
antaresbr/collection
kr0lik/phpstan-rules
loco/loco
starfederation/datastar-php
yupmin/modern-phystrix
stephenjude/extended-artisan-commands
lumphp/laravel-macroable
lumphp/laravel-collections
lumphp/laravel-contracts
sermepa/sermepa
arkecosystem/fortify
arkecosystem/ui
owowagency/laravel-resources
gtjamesa/php-standards