首页 > 解决方案 > 可以在没有 autoload.php(作曲家)的情况下使用 phpleague/color-extractor 吗?

问题描述

我正在尝试使用颜色提取器来获取图像的颜色,但无法正常工作。

我注意到包中缺少 autoload.php 文件,经过一番谷歌搜索后,它似乎需要您使用Composer。我没有使用过composer,也没有太多使用命令行的经验。我正在研究的东西,但希望在使用这个 php 包之前不必全部学习。

我尝试从这里更改一些 php 行:

require 'vendor/autoload.php';

use League\ColorExtractor\Color;
use League\ColorExtractor\ColorExtractor;
use League\ColorExtractor\Palette;

对此:

require ..\lib\League\ColorExtractor\Color;
require ..\lib\League\ColorExtractor\ColorExtractor;
require ..\lib\League\ColorExtractor\Palette;

但它没有用,我得到了这些错误:

[14-Jan-2019 07:00:43 Australia/Sydney] PHP Fatal error:  require(): Failed opening required 'lib/League/ColorExtractor/Color.php' (include_path='.:/opt/alt/php56/usr/share/pear:/opt/alt/php56/usr/share/php') in /home/windowvi/public_html/arena/examples/grid2/php/get_collection.php on line 3
[14-Jan-2019 07:07:14 Australia/Sydney] PHP Fatal error:  Class 'Palette' not found in /home/windowvi/public_html/arena/examples/grid2/php/get_collection.php on line 55

可以在不学习和使用作曲家的情况下使用这个包吗?如果可以,我将如何要求/包含这些文件?

谢谢!

标签: phpcomposer-phpthephpleague

解决方案


希望这会对您有所帮助。

创建一个名为“colorextractor”的项目文件夹</p>

从 phpleague/color-extractor/src/League/ColorExtractor 复制粘贴 3 个文件

  1. 颜色.php
  2. 颜色提取器.php
  3. 调色板.php

进入您的项目文件夹。

然后创建一个 index.php 文件(见下文),该文件将运行 phpleague/color-extractor 的 README 中的示例——以确保它按预期工作。

您的项目文件夹应包含以下内容: 在此处输入图像描述

注意:我使用“testimage.png”来测试 index.php 中的包

索引.php

<?php
// import package namespaces
use League\ColorExtractor\Color;
use League\ColorExtractor\ColorExtractor;
use League\ColorExtractor\Palette;

// if you don't use an autoloader
// you need to require the package files
require __DIR__ . "/Color.php";
require __DIR__ . "/ColorExtractor.php";
require __DIR__ . "/Palette.php";

// the example from the README at ColorExtractor
$palette = Palette::fromFilename('./testimage.png');
// $palette is an iterator on colors sorted by pixel count
foreach($palette as $color => $count) {
    // colors are represented by integers
    echo Color::fromIntToHex($color), ': ', $count, "\n";
}
echo '<br />';
// it offers some helpers too
$topFive = $palette->getMostUsedColors(5);
echo '<br />';
echo 'top 5 most used colors:';
echo '<pre>';
print_r($topFive);
echo '</pre>';

$colorCount = count($palette);
echo '<br />';
echo "color count: " . $colorCount;
echo '<br />';

// this example gave me a 'notice: undefined offset'
//$blackCount = $palette->getColorCount(Color::fromHexToInt('#000000'));
//echo '<br />';
//echo "black count " . $blackCount;


// an extractor is built from a palette
$extractor = new ColorExtractor($palette);
// it defines an extract method which return the most “representative” colors
$colors = $extractor->extract(5);
echo '<br />';
echo 'most representative colors:';
echo '<pre>';
print_r($colors);
echo '</pre>';

推荐阅读