codewithkyle/jitter-core

An Imgix inspired image transformation library.

2.0.1 2022-07-07 18:42 UTC

This package is auto-updated.

Last update: 2024-04-07 22:25:12 UTC


README

Jitter is an image transformation library with an API is based on Imgix. This library was created to be a simple and free alternative to an Imgix style service. It does not and will not have all the bells and whistles that other services/libraries offer. If you need something more advanced besides basic image transformations I suggest you pay for Imgix.

Requirements

This library requires PHP 7.2 or later and ImageMagick.

Installation

# Install the library via composer
composer require codewithkyle/jitter-core

# Optional webp support (recommended)
sudo apt install webp

Using Jitter

Transforming images:

use codewithkyle\JitterCore\Jitter;

class ImageController
{
    public function transformImage()
    {
        $imageFilePath = "./image.jpg"; // copy of source image (will be overwritten)
        $params = ["w" => 320, "ar" => "1:1", "fm" => "jpg"]; // See transformation parameter table below for more options

        $transformSettings = Jitter::BuildTransform($params); // Transform settings can be hashed with the base image's indentifier when caching
        Jitter::TransformImage($imageFilePath, $transformSettings); // Manipulates and overwrites the image located at $imageFilePath

        // Optional Next Steps:
        // Save $imageFilePath a cloud provider (such as S3)
    }
}

Transformation parameters:

Parameter Default Description Valid options
w base image width desired image width int
h base image height desired image height int
ar base image aspect ratio desired aspect ratio int:int
fm auto desired image format jpg, jpeg, png, gif, webp, auto
q 80 desired image quality 0 to 100
m clip how the image should be resized crop, clip, fit, letterbox, croponly
bg ffffff letterbox background color hex
fp-x 0.5 or asset focal point horizontal focus point 0 to 1
fp-y 0.5 or asset focal point vertical focus point 0 to 1

The auto format type will return a webp image when the server can generate the format and the client's browser supports the format.