Custom thumb drivers
Besides the two default thumb drivers — GD Lib and ImageMagick — there's also an option to create your own thumb driver. This can be useful to extend the functionalities of Kirby's default drivers or make use of a different image manipulation library.
Thumb driver plugin
Your thumb driver should be located in a plugin file. For example /site/plugins/mythumbdriver/mythumbdriver.php
A new driver is a simple callback function, which is being added to the thumb::$drivers
array:
thumb::$drivers['mythumbdriver'] = function($thumb) {
// your thumb driver code
};
The callback receives the $thumb
object, which gives you access to the original Kirby file object as well as the destination object and the options array for the thumbnail.
$thumb->source;
$thumb->options;
$thumb->destination;
The callback must take care of all the resizing, cropping and converting of the original image and store it at the selected destination. Possible errors must be handled with Exceptions. The callback does not have to return anything.
Activating the driver
Once your driver is ready, it can be activated in your config file.
c::set('thumbs.driver', 'mythumbdriver');