sylvainjule / colorextractor
从任何图片中提取主色/平均色。
Requires
README
此插件可以从任何图片中提取主色/平均色,并将其作为十六进制值存储在文件的元数据中。
概述
此插件完全免费,并遵循MIT许可协议发布。然而,如果您在使用它进行商业项目并且希望帮助我维护,请考虑捐赠或通过我的联盟链接购买您的许可证。
1. 安装
下载并将此存储库复制到 /site/plugins/colorextractor
或者,您可以使用composer安装它:composer require sylvainjule/colorextractor
2. 使用
它可以使用两种方式
2.1. 钩子
安装到 plugins
文件夹后,它将自动开始为在面板中上传或替换的任何图片提取颜色。
2.2. 面板按钮
如果您在未触发钩子的情况下手动上传文件,从前端或其他方式,也可以使用自定义的 janitor 作业来处理网站上所有未关联颜色的图片。
您首先需要安装janitor插件。
然后,在您的 config.php
中注册此插件提供的作业
'bnomei.janitor.jobs-extends' => [ 'sylvainjule.colorextractor.jobs', ],
您现在可以在您的蓝图中使用它了
colorextractor: type: janitor label: Extract missing colors progress: 'Processing…' job: extractColors
extractColors
作业将仅提取 缺失的颜色。如果您想强制重新提取现有颜色,请使用 forceExtractColors
作业。
3. 选项
3.1. 提取模式
默认情况下,该插件倾向于提取图像中最主要/最鲜艳的颜色。有时,根据整个调色板的近似值提取平均颜色可能很有用。当设置为 average
时,此选项将图像缩小为 1x1 像素的缩略图,然后获取图像处理器选择的平均颜色。您可以在 这里 找到一些示例。
您也可以将其设置为 both
,如果您想提取两种颜色并在模板中稍后从它们中选择(请参阅 插件方法
)。
可用选项是 dominant | average | both
。默认为 dominant
。
// config/config.php return array( 'sylvainjule.colorextractor.mode' => 'dominant', );
3.2. 透明度处理
插件需要知道如何处理大于零的alpha值颜色,并在检测到透明度时回退到哪种颜色。
默认为 #ffffff
// config/config.php return array( 'sylvainjule.colorextractor.fallbackColor' => '#000000', );
4. 显示和使用颜色
4.1. 如果提取了单个颜色
如果您已选择 dominant
(默认)或 average
提取模式,您可以直接从模板中的 color
字段访问它
$image->color();
该插件与 @hananils 的颜色选择器 结合使用良好,这可能有助于预览和调整检测到的颜色。
# Place this inside your file blueprint fields: color: type: colors
4.2. 如果提取了两种颜色
如果您选择了提取并存储两种颜色,颜色字段将存储由逗号分隔的HEX值。该插件提供了一种文件方法来从中获取特定的颜色
$image->color()->dominantColor(); $image->color()->averageColor();
5. 许可证
MIT
6. 致谢
- 由@iandoe编写的K2字段
- 由@thephpleague提供的颜色提取过程