sylvainjule/colorextractor

从任何图片中提取主色/平均色。

2.0.0 2024-03-10 09:55 UTC

This package is auto-updated.

Last update: 2024-09-10 11:02:39 UTC


README

colorextractor

此插件可以从任何图片中提取主色/平均色,并将其作为十六进制值存储在文件的元数据中。


概述

此插件完全免费,并遵循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. 致谢