@kamisarlapsha

Как определять основной цвет картинки?

Привет! Как определить основной цвет картинки ? Я решил использовать php. Но после этого страница стала грузиться в 2 раза дольше. Дело в моём коде или стоит это делать на jquery ? Сама суть, что у меня есть много картинок и у каждой надо определить общий цвет. Заранее спасибо!

Вот мой код php
$img_path = 'image/' . $result['image'];
                
$im = imagecreatefromstring(file_get_contents($img_path));

$rgb = imagecolorat($im, 10, 15);
                
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
                
$rgb = '('.(int)$r.', '.(int)$g.', '.(int)$b.')';
                
ImageDestroy($im);
  • Вопрос задан
  • 259 просмотров
Пригласить эксперта
Ответы на вопрос 2
@bkosun
require 'vendor/autoload.php';

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

$palette = Palette::fromFilename('./some/image.png');

$topFive = $palette->getMostUsedColors(1);


https://github.com/thephpleague/color-extractor
Ответ написан
@grinat
Если это используется только на фронте, то можешь сделать на js, только jquery тут не поможет: https://developer.mozilla.org/ru/docs/Web/API/ImageData

Если еще где-то, то на php, но проходить по всему изображению и дергать каждый пиксель, не лучший вариант. Учитывая что в php просто обертка на gd, возможно будет быстрее например конвертировать исходное изображение в изображение 1x1 и его цвет будет близок к самому используемому.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы