<?php
use Imagine\Gd\Imagine;
use Imagine\Filter\Advanced\OnPixelBased;
use Imagine\Image\ImageInterface;
use Imagine\Image\PointInterface;
$imgPath = 'php_logo.png';
$imagine = new Imagine();
$image = $imagine->open($imgPath);
$colorList = [];
$function = function (ImageInterface $image, PointInterface $point) use (&$colorList) {
$color = $image->getColorAt($point);
$colorList[] = (string) $color;
};
$onPixelBased = new OnPixelBased($function);
$onPixelBased->apply($image);
$original = base64_encode($image->get('png'));
echo 'image:<br><img src="data:image/png;base64,' . $original . '">' . PHP_EOL;
// a slice of all the colors:
dump(
array_slice(
array_unique($colorList),
0,
20
)
);