ImageKit Icon

ImageKit

Installation

Install the addon using Composer.

composer require aerni/imagekit

Publish the config of the package.

php please vendor:publish --tag=imagekit-config

The following config will be published to config/imagekit.php.

return [
 
/*
|--------------------------------------------------------------------------
| ImageKit Domain
|--------------------------------------------------------------------------
|
| The default domain to use as part of your URL Endpoint.
|
*/
 
'domain' => env('IMAGEKIT_DOMAIN', 'ik.imagekit.io'),
 
/*
|--------------------------------------------------------------------------
| ImageKit ID
|--------------------------------------------------------------------------
|
| The default ImageKit ID to use as part of your URL Endpoint.
|
*/
 
'id' => env('IMAGEKIT_ID'),
 
/*
|--------------------------------------------------------------------------
| ImageKit Identifier
|--------------------------------------------------------------------------
|
| The default identifier to use as part of your URL Endpoint.
|
*/
 
'identifier' => env('IMAGEKIT_IDENTIFIER'),
 
/*
|--------------------------------------------------------------------------
| Bypass ImageKit
|--------------------------------------------------------------------------
|
| You can bypass ImageKit to load the images from the regular path.
| This is useful for local development.
|
*/
 
'bypass' => env('IMAGEKIT_BYPASS', false),
 
];

Configuration

Set your configuration in your .env file. The values will be used to generate your URL Endpoint.

IMAGEKIT_DOMAIN=ik.imagekit.io
IMAGEKIT_ID=starwars
IMAGEKIT_IDENTIFIER=characters
IMAGEKIT_BYPASS=true

Basic Usage

Single Image

We have an asset URL saved in the YAML and want to resize the image to 300x200.

image: starwars/mandalorian.jpg
{{ imagekit :src="image" w="300" h="200" }}
 
<!-- Use the nicer shorthand syntax: -->
{{ imagekit:image w="300" h="200" }}
https://ik.imagekit.io/starwars/characters/tr:w-300,h-200/assets/starwars/mandalorian.jpg

Multiple Images

Loop over a list of asset URLs to generate ImageKit URLs for each one. Reference the URL of the current asset in the loop using {{ url }}.

images:
- starwars/mandalorian.jpg
- starwars/baby-yoda.jpg
{{ images }}
{{ imagekit:url w="300" h="200" }}
{{ /images }}
https://ik.imagekit.io/starwars/characters/tr:w-300,h-200/assets/starwars/mandalorian.jpg
https://ik.imagekit.io/starwars/characters/tr:w-300,h-200/assets/starwars/baby-yoda.jpg

Focal Point

Use Statamic's Focal Point feature to automatically add the xc and yc parameter to the image.

Image Meta Yaml:

data:
focus: 50-85-1
width: 2090
height: 3000

Template:

{{ imagekit:image w="500" h="200" cm="extract" }}

Output:

https://ik.imagekit.io/starwars/characters/tr:xc-1045,yc-2550,w-500,h-200,cm-extract/assets/starwars/mandalorian.jpg

Note: As of now, ImageKit only supports custom coordinates in combination with the cm-extract parameter.

HTML Attributes

Pass the following parameters to generate the respective HTML attribute.

Name Type Description
src String The URL of the image. You can also use the shorthand syntax instead, e.g. {{ imagekit:image }}.
tag Boolean When set to true, this will output an <img> tag with the URL in the src attribute.
alt String When using the tag parameter, this will insert the given text into the alt attribute.
title String When using the tag parameter, this will insert the given text into the title attribute.
class String When using the tag parameter, this will insert the given text into the class attribute.

Settings Parameters

You may want to override the default addon configuration for a specific image. You can do this with the following parameters. Note: Using an empty string will remove the default setting.

Name Type Description
domain String Override the default domain.
id String Override the default id.
identifier String Override the default identifier.
bypass Boolean Override the default bypass boolean.

ImageKit Parameters

You may pass any transformation parameters straight from the ImageKit API. For example, {{ imagekit:image w="300" }} will use the width transformation parameter. There’s only a few parameters that are not supported by this addon.

Category Supported Parameters Unsupported Parameters
Resize, crop and other common transformations w h ar c cm fo x y xc cy q f bl e-grayscale dpr n pr lo t b cp md rt r bg orig di
Overlay oi obg ofo ox oy oh ow oit ot ote otw otbg otp otia otc otf ots ott oa
Image enhancement & color manipulation e-contrast e-sharpen e-usm

Chained Transformations

You can take advantage of Chained Transformations by adding a : at the end of a given parameter. For example, {{ imagekit:image w="300" h="200:" rt="90" }} will first resize the image to 300x200 and then apply a rotation of 90 degrees.

Lazyloading with lazySizes

If you’re using lazySizes to lazyload images, chances are you’re using the lazySizes RIaS extension. You can leverage the power of the {width} and {quality} placeholder by setting the value of the w and/or q parameter to auto.

{{ imagekit:image w="auto" q="auto" }}
https://ik.imagekit.io/starwars/characters/tr:w-{width},q-{auto}/assets/starwars/mandalorian.jpg