Skip to content

Instantly share code, notes, and snippets.

@tomdavies
Created December 6, 2022 12:20
Show Gist options
  • Save tomdavies/224e56fe5fcba2c15a3d31d968eb98d8 to your computer and use it in GitHub Desktop.
Save tomdavies/224e56fe5fcba2c15a3d31d968eb98d8 to your computer and use it in GitHub Desktop.
Register custom image transformers in CraftCMS
<?php
use Craft;
use craft\base\Plugin;
use craft\elements\Asset;
use craft\events\GenerateTransformEvent;
use craft\events\RegisterComponentTypesEvent;
use craft\services\ImageTransforms;
use my\namespace\CustomTransformer;
use yii\base\Event;
class MyPlugin extends Plugin
{
public function init(): void
{
parent::init();
// Register the transformer(s) with Craft
Event::on(
ImageTransforms::class,
ImageTransforms::EVENT_REGISTER_IMAGE_TRANSFORMERS,
function (RegisterComponentTypesEvent $event) {
$event->types[] = CustomTransformer::class;
}
);
// Use the selected transformer
Event::on(
Asset::class,
Asset::EVENT_BEFORE_GENERATE_TRANSFORM,
function (GenerateTransformEvent $event) {
$event->transform->setTransformer(CustomTransformer::class);
}
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment