Download the PHP package bkwld/croppa without Composer

On this page you can find all versions of the php package bkwld/croppa. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package croppa

Croppa

Packagist

Croppa is an thumbnail generator bundle for Laravel 9.x. It follows a different approach from libraries that store your thumbnail dimensions in the model. Instead, the resizing and cropping instructions come from specially formatted urls. For instance, say you have an image with this path:

/storage/uploads/09/03/screenshot.png

To produce a 300x200 thumbnail of this, you would change the path to:

/storage/uploads/09/03/screenshot-300x200.png

This file, of course, doesn’t exist yet. Croppa listens for specifically formatted image routes and build this thumbnail on the fly, outputting the image data (with correct headers) to the browser instead of the 404 response.

At the same time, it saves the newly cropped image to the disk in the same location (the "…-300x200.png" path) that you requested. As a result, all future requests get served directly from the disk, bybassing PHP and all that overhead. In other words, your app does not boot just to serve an image. This is a differentiating point compared to other, similar libraries.

Since 4.0, Croppa lets images be stored on remote disks like S3, Dropbox, FTP and more thanks to Flysystem integration.

Server Requirements:

Nginx

When using Nginx HTTP server boilerplate configs, add error_page 404 = /index.php?$query_string; in the location block for Media, located in file h5bp/location/expires.conf.

Installation

Add Croppa to your project: composer require bkwld/croppa

Configuration

Read the source of the config file for documentation of the config options. Here are some examples of common setups (additional examples can be found here):

You can publish the config file into your app’s config directory, by running the following command:

Local src and crops directories

The most common scenario, the src images and their crops are created in the default ”public” Laravel disk.

Thus, if you have <img src="{{ Croppa::url('file.jpg', 200) }}">, the returned URL will be /storage/file-200x_.jpg, the source image will be looked for at '/storage/app/public/file.jpg', and the new crop will be created at '/storage/app/public/file-200x_.jpg'. And because the URL generated by Croppa::url() points to the location where the crop was created, the web server (Apache, etc) will directly serve it on the next request (your app won’t boot just to serve an image).

Src images on S3, local crops

This is a good solution for a load balanced enviornment. Each app server will end up with it’s own cache of cropped images, so there is some wasted space. But the web server (Apache, etc) can still serve the crops directly on subsequent crop requests.

Thus, if you have <img src="{{ Croppa::url('file.jpg', 200, 100) }}">, the returned URL will be /storage/file-200x100.jpg, the source image will be looked for immediately within the S3 bucket that was configured as part of the Flysystem instance, and the new crop will be created at /storage/app/public/file-200x100.jpg.

Usage

The URL schema that Croppa uses is:

/path/to/image-widthxheight-option1-option2(arg1,arg2).ext

So these are all valid:

/storage/image-300x200.webp             // Crop to fit in 300x200
/storage/image-_x200.webp               // Resize to height of 200px
/storage/image-300x_.webp               // Resize to width of 300px
/storage/image-300x200-resize.webp      // Resize to fit within 300x200
/storage/image-300x200-quadrant(T).webp // See the quadrant description below

Croppa::url($url, $width, $height, $options)

To make preparing the URLs that Croppa expects an easier job, you can use the following view helper:

These are the arguments that Croppa::url() takes:

Croppa::render($cropurl)

If you want to create the image programmatically you can pass to this function the url generated by Croppa::url. This will only create the thumbnail and exit.

or

Croppa::delete($url)

You can delete a source image and all of its crops by running:

Croppa::reset($url)

Similar to Croppa::delete() except the source image is preserved, only the crops are deleted.

Console commands

croppa:purge

Deletes all crops. This works by scanning the crops_disk recursively and matching all files that have the Croppa naming convention where a corresponding src file can be found. Accepts the following options:

croppa.js

A module is included to prepare formatted URLs from JS. This can be helpful when you are creating views from JSON responses from an AJAX request; you don’t need to format the URLs on the server. It can be loaded via Require.js, CJS, or as browser global variable.

croppa.url(url, width, height, options)

Works just like the PHP Croppa::url except for how options get formatted (since JS doesn’t have associative arrays).

Run php artisan asset:publish bkwld/croppa to have Laravel copy the JS to your public directory. It will go to /public/packages/bkwld/croppa/js by default.

History

Read the Github project releases for release notes.

This package uses Intervention Image to do all the image resizing. "Crop" is equivalent to it’s fit() and "resize" is … resize(). Support for interacting with non-local disks provided by Flysystem.


All versions of croppa with dependencies

PHP Build Version
Package Version
Requires php Version ^8.0.2
illuminate/console Version ^9.0|^10.0
illuminate/support Version ^9.0|^10.0
illuminate/routing Version ^9.0|^10.0
intervention/image Version ^2.7
league/flysystem Version ^3.0
symfony/http-foundation Version ^6.0
symfony/http-kernel Version ^6.0
ext-gd Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package bkwld/croppa contains the following files

Loading the files please wait ....