spacecatninja / imager-x-imagekit-transformer
Imager X 的 ImageKit 转换器
Requires
- php: ^8.2
- craftcms/cms: ^5.0.0-beta.1
- imagekit/imagekit: ^4.0
README
这是一个用于在 Imager X 中将 ImageKit 作为转换器使用的插件。
同时,也是一个如何为 Imager X 制作自定义转换器的示例。
需求
此插件需要 Craft CMS 5.0.0-beta.1 或更高版本,Imager X 5.0.0-beta.1 或更高版本,以及 ImageKit 的账户。
使用方法
按照以下说明安装和配置此转换器。然后,在您的 Imager X 配置 中,将转换器设置为 imagekit
,即
'transformer' => 'imagekit',
转换现在默认使用 ImageKit 进行转换,使用以下简单的转换测试您的配置
{% set transform = craft.imagerx.transformImage(asset, { width: 600 }) %}
<img src="{{ transform.url }}" width="600">
<p>URL is: {{ transform.url }}</p>
如果不起作用,请确保您已配置了 defaultProfile
,存在具有正确名称的配置文件,并且 ImageKit 已正确配置。
注意事项、不足之处和技巧
此转换器仅支持默认 craft
转换器在 Imager X 中可执行的一部分操作。所有基本转换参数都受支持,但有以下例外
- 焦点点转换为焦点锚点(例如
top
、left
、center
等)。
– 水印不会自动从 Imager 语法转换为 ImageKit,但您仍然可以通过手动通过transformerParams
对象传递它们来添加水印(见下文)。 - 目前没有自动转换效果。
要直接将附加选项传递给 ImageKit,您可以使用 transformerParams
转换参数,并通过 options
对象传递它们。示例
{% set transforms = craft.imagerx.transformImage(asset,
[{width: 400}, {width: 600}, {width: 800}],
{ ratio: 2/1, transformerParams: { rotation: 45 } }
) %}
有关要使用的参数,请参阅 ImageKit PHP SDK,有关更多信息,请参阅 ImageKit 文档。
安装
要安装插件,请按照以下说明操作
- 通过在项目目录中运行
composer require spacecatninja/imager-x-imagekit-transformer
使用 composer 安装。 - 在 Craft 控制面板的设置 > 插件中安装插件,或从命令行通过
./craft plugin/install imager-x-imagekit-transformer
安装。
配置
您可以通过在配置文件夹中创建名为 imager-x-imagekit-transformer.php
的文件来配置转换器,并根据需要覆盖设置。
publicKey [字符串]
默认: ''
您的 ImageKit 账户的公钥(在 ImageKit 中的开发者选项 > API 密钥)。
privateKey [字符串]
默认: ''
您的 ImageKit 账户的私钥(在 ImageKit 中的开发者选项 > API 密钥)。
signUrls [布尔值]
默认: false
启用此选项以生成签名 URL。如果设置 > 图片 > 安全中的“限制未签名图片 URL”被启用,则需要此功能。
signedUrlsExpireSeconds [整数]
默认: 31536000
(一年)
签名 URL 的持续时间。
stripUrlQueryString [布尔值]
默认: true
默认情况下,所有查询字符串都会从传递给 ImageKit 的完整 URL 中删除,以提高缓存效率。如果使用依赖于查询字符串的完整 URL,则可以关闭此选项以使其正常工作。
profiles [数组]
默认值: []
配置通常是一对一映射到您在ImageKit中创建的URL端点。但由于ImageKit URL端点的性质,您可以在每个端点混合不同的存储,因此也可能有必要为单个端点创建多个配置,用于不同的用例(例如,一个用作网络代理,另一个用于相对路径)。您可以使用defaultProfile
配置设置来设置要使用的默认配置,并且可以在模板级别通过在transformerConfig
中设置profile
来覆盖它。
示例配置
'profiles' => [
'default' => [
'urlEndpoint' => 'https://ik.imagekit.io/myurlendpoint',
'isWebProxy' => false,
'useCloudSourcePath' => true,
],
'proxy' => [
'urlEndpoint' => 'https://ik.imagekit.io/myotherurlendpoint',
'isWebProxy' => true
]
],
每个配置都有以下设置
urlEndpoint [字符串]
默认: ''
这是您在ImageKit中创建的URL端点。
isWebProxy [布尔值]
默认: false
指示URL端点是否使用网络代理。如果启用,将传递完整的URL到ImageKit,而不是资产的相对路径。
defaultParams [数组]
默认值: []
要传递给每个转换的默认参数。
useCloudSourcePath [布尔值]
默认: false
如果启用,Imager将在将资产路径添加到ImageKit URL之前,将其附加到Craft文件系统路径。这使得在实例上具有不同的子文件夹但位于同一S3存储桶时,可以从多个Craft文件系统中提取图像成为可能。这仅在实现路径设置的文件系统上有效(AWS S3和GCS有效,本地卷无效)。
addPath [字符串|数组]
默认值: []
将路径附加到资产路径。如果有多个卷需要使用一个ImageKit源提供服务,这可能会很有用。如果此设置是数组,则键应该是卷句柄,值是要添加的路径。
defaultProfile [字符串]
默认: ''
设置要使用的默认配置(参见profiles
)。您可以通过设置transformParams
转换参数来在转换级别覆盖配置。示例
{% set transforms = craft.imagerx.transformImage(asset,
[{width: 800}, {width: 2000}],
{ transformerParams: { profile: 'myotherprofile' } }
) %}
defaultParams [数组]
默认值: []
传递给所有转换的默认参数。
purgeEnabled [布尔值]
默认: true
切换自动清理的开/关。
价格、许可和支持
该插件基于MIT许可证发布。它需要Imager X,这是一个商业插件,可在Craft插件商店中获取。如果您需要帮助或发现错误,请在此存储库或Imager X的存储库中提交问题(最好是)。