Определение количества цветов в загруженном изображении - PullRequest
1 голос
/ 14 декабря 2011

Как определить, сколько цветов имеет изображение, а затем вернуть значения RGB или Hex этих цветов в PHP? Со стандартными форматами файлов ... PNG, JPG, GIF и т. Д.

Образец изображения: enter image description here

Используется для: Инструмент онлайн-дизайна, который позволяет загружать изображения для использования в конструкторе. Я пытаюсь отклонить все изображения с более чем 10 цветами (или, возможно, уменьшить цвета?). Для изображений с менее чем 10 цветами я пытаюсь вернуть значения Hex или RGB для каждого присутствующего цвета (чем больше цветов, тем дороже процесс печати).

1 Ответ

4 голосов
/ 14 декабря 2011
$gd = imagecreatefrompng($filename);

$width = imagesx($gd);
$height = imagesy($gd);

$colors = array();

for($x = 0; $x < $width; $x++)
{
    for($y = 0; $y < $height; $y++)
    {
        $color = imagecolorat($gd, $x, $y);
        $hex = sprintf("0x%06x", $color);

        if(!in_array($hex, $colors))
        {
            $colors[] = $hex;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...