php - 可以在没有 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
可以在不学习和使用作曲家的情况下使用这个包吗?如果可以,我将如何要求/包含这些文件?
谢谢!
解决方案
希望这会对您有所帮助。
创建一个名为“colorextractor”的项目文件夹</p>
从 phpleague/color-extractor/src/League/ColorExtractor 复制粘贴 3 个文件
- 颜色.php
- 颜色提取器.php
- 调色板.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>';
推荐阅读
- javascript - Web Crawler with Scraper 使用 Puppeteer 和 Scrapy
- python - "with suppress" not working anymore in my Python 3 code?
- sql - 返回 sql 之间的月份
- android - 允许用户在不使用自动旋转的情况下左右横向
- node.js - 正确创建/解析 JSON
- clojure - 如何使用管道上的传感器创建多个输出?
- iis - 在 IIS 中使用 serilog 进行文件记录
- javascript - 同步随机变量
- java - 如何在 xpages 中读取 Java 中的 css 文件
- python - 最后一行的值会覆盖 for 循环中的其他行