fredtux / photo-color-names
图像颜色提取和命名的异构库集成器
1.0.0
2017-07-10 22:02 UTC
Requires
This package is auto-updated.
Last update: 2024-09-27 05:40:28 UTC
README
图像颜色提取和命名的异构库集成器
使用方法
带注释的简单示例
<?php ### OPTIONAL (depending on settings) ### // Include autoload - may not be necessary if it has already been done include __DIR__ . '/vendor/autoload.php'; // Used classes /// For color extraction use PhotoColorNames\PhotoColors\PhotoColorFactory; use PhotoColorNames\PhotoColors\PhotoColorOptions; /// For color naming use PhotoColorNames\ColorNames\ColorNamesFactory; use PhotoColorNames\ColorNames\NamePool; use PhotoColorNames\NameColor; ### END OF OPTIONAL ### ### MAIN ### // Extract colors /// Use the factory to retrieve a new object for color extraction $photoColors = PhotoColorFactory::getColorExtractor('ColorThief'); // Has to be installed via composer - 'GetMostCommonColors' can be used instead /// Specify options - the most important is the file path $photoColorOptions = new PhotoColorNames\PhotoColors\PhotoColorExtractorOptions(__DIR__ . '/test/images/test.jpg'); // Assuming there is a test image at this path // Manually set each option, or set all options except the file path to their default value $photoColorOptions->setDefaultOptions(); // Name the colors /// Use the factory to retrieve a new object for color naming $nameGiver = ColorNamesFactory::getColorNameGiver('ntc'); /// Use a list of names $nameList = NamePool::getNtcNames(); // Construct object using the 4 variables declared before $nameColor = new NameColor($photoColors, $photoColorOptions, $nameGiver, $nameList); // Use the newly created object to get the names of the most frequently used colors in the file $x = $nameColor->getNamesOfFrequentlyUsedColors(); ### END OF MAIN ### // Print result (not part of MAIN because it's not necessary) print_r($x);
添加新库
通过源代码
Composer
只需将其添加到 composer.json 并安装。Composer 会轻松将其集成到项目中。
非 Composer
建议,但不强制,将新库放置在 NoComposer 文件夹中,该文件夹位于 ColorNames 或 PhotoColors 文件夹下,具体取决于新库的用途。
通过类型
颜色提取器
库
- 必须在 src/PhotoColors/Adapters 中创建适配器
- 适配器必须实现 iPhotoColorExtractor
- 有一个名为 getColors 的函数
- 有 1 个参数
- $photoColorExtractorOptions 类型为 PhotoColorExtractorOptions
- 实现所有必要的逻辑以产生与第 5 个示例相同的类型的结果(由于设计用于在 PHP >= 5.6 上运行,因此不强制返回类型)
- 必须在 PhotoColorFactory 的 getColorExtractor 方法的 switch 语句的新情况下放置适配器类型的对象构造操作
- 可以通过从工厂创建对象来使用新库
PhotoColorFactory::getColorExtractor('ColorExtractorLibrary');
- 示例
- PhotoColorNames\PhotoColors\Adapters\ColorThiefAdapter
- GetMostCommonColorsAdapter
提取器选项
可以指定新的提取器选项类,但必须与颜色提取器类 1 配对
颜色名称
库
- 必须在 src/ColorNames/Adapters 中创建适配器
- 适配器必须实现 iPhotoColorNamesGiver
- 有一个名为 getName 的函数
- 有 2 个参数
- $colorName 类型为 ColorData
- $nameList 类型为 array
- 实现所有必要的逻辑以产生与第 5 个示例相同的类型的结果(由于设计用于在 PHP >= 5.6 上运行,因此不强制返回类型)
- 必须在 ColorNamesFactory 的 getColorNameGiver 方法的 switch 语句的新情况下放置适配器类型的对象构造操作
- 可以通过从工厂创建对象来使用新库
ColorNamesFactory::getColorNameGiver('ColorNamingLibrary');
- 示例
- PhotoColorNames\ColorNames\Adapters\NtcAdapter
名称列表
建议,但不强制,将新的名称列表添加到 NamePool,作为返回具有颜色 RGB 十六进制代码作为键的数组的静态方法
许可证
此项目根据 MIT 许可证发布。
在此项目中,有来自各种来源的算法。我将尽最大努力尊重代码许可证并向所有者致谢,但如果您认为您的许可证已被违反,请随时创建问题,我会尽快解决。