2024/5/1
Tag : Craft CMS

Craft CMS の Imager X プラグインを使って画像登録時に処理をする #craftcms

CMSにアップロードする際に画像のサイズを変えたり、種類を変えたいという要望は多い。
先日の Transform を利用する方法は CMS の機能としては手動で利用する感じになる。

(なんかこれを自動でやる方法があったような気がしないでもないのだが、、、思い出せない)

以前、 Watermarkを入れる処理や、 WebP にするので Imager X プラグインを使って試した

その時にあったかどうかは定かではないが、いまは Imager X プラグインの Pro版を利用すれば画像をアップロードした際に処理をすることが出来る。

基本的には Automatic generation of transforms に書いてある通りになる。

Automatic generation of transforms | Imager X 5.0
https://imager-x.spacecat.ninj...

imager-x-transforms.php のファイルを config 配下に用意して Transform の定義をする

<?php

return [
    'test4' => [
        'displayName' => 'test4',
        'transforms' => [
            ['width' => 2000,
             'watermark' => [
                'image' => "https://note.mersy418.com/bitpart-brown-big.png",
                'width' => 200,
                'height' => 80,
                'position' => ['left' => 100, 'top' => 250],
                'opacity' => 0.5,
                'blendMode' => "multiply"
            	]
            ],
        ],
        'defaults' => [
            'format' => 'webp'
        ]
    ]
];

imager-x-generate.php のファイルを config 配下に用意して、どのボリュームに対してどの Transform を適用するか?を記載する。

<?php

return [
    'volumes' => [
        'test' => ['test4'],
    ]
];

これだけで画像をアップロードした際に処理が施された画像が生成される。
アップロードした元画像はそのままで、別の場所に画像が生成される形になる。

アセット自体を圧縮したものにするとかは出来るのかどうか、、、はもう少し調べてみたい。
何かのことを考えると元画像は残しておきたい所だし。


自動で Transform が出来る云々は CKEditor のフィールドでデフォルトで適用する Transform を選択出来るのをイメージしてるのかも知れない。

ただまぁ、これは CKEditor フィールド経由でアップしたときは適用できるけど、Asset のフィールドの場合は適用されないわけで。
その辺は運用にもよるところはありそう。