Узнать цвет фона изображения

319
19 января 2017, 06:39

Как возможно узнать цвет картинки, точнее фон этой картинки или просто какой цвет находится по краям?

Answer 1

Вам понадобниться библиотека которая умеет это делать(gd, imagemagic ...) http://php.net/manual/en/book.image.php http://php.net/manual/en/book.imagick.php

GD

http://php.net/manual/en/function.imagecolorat.php

<?php
    $path = realpath('../path/to/./your/folder/testimage.jpg');
    if ($path) {
        $im = imagecreatefrompng($path);
        $rgb = imagecolorat($im, 10, 15);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;
        var_dump($r, $g, $b);
        $colors = imagecolorsforindex($im, $rgb);
        var_dump($colors); // rgba
    } else {
       echo "Invalid file path";
    }

ImageMagick

http://php.net/manual/en/imagick.getimagepixelcolor.php

<?php 
    $path = realpath('../path/to/./your/folder/testimage.jpg');
    if ($path) {
        $image = new Imagick($path); 
        $x = 1; 
        $y = 1; 
        $pixel = $image->getImagePixelColor($x, $y); 
        $colors = $pixel->getColor(); 
        var_dump($colors); // produces Array([r]=>255,[g]=>255,[b]=>255,[a]=>1); 
        var_dump($pixel->getColorAsString()); // produces rgb(255,255,255);
    } else {
       echo "Invalid file path";
    }

Только протестировал.

1) Нужен полный путь к файлу. Относительные не работали правильно. http://php.net/manual/en/function.realpath.php. realpath вернет false если путь неправильный.

2) GD для работу с прозрачностью надо использовать. http://php.net/manual/en/function.imagecolorsforindex.php (только там прозрачность по другому считает 0 - непрозрачный 127 - прозрачный)

Обновил код.

Answer 2

Сделать принт скрин и открыть в фотошопе посмотреть инструментом пипетка - кнопка i на клавиатура, если нет фотошопа, то в пейнте. Если не хочется таким образом. Есть плагин - в браузере хром он показывает цвета.

READ ALSO
Выбор из базы по максимальной дате у ID

Выбор из базы по максимальной дате у ID

Есть mySQL таблица с списком задач

354
Не работает INSERT INTO

Не работает INSERT INTO

У вас ошибка в запросе, нужно поправить на:

521
Как мне соединить таблицы в phpMyAdmin?

Как мне соединить таблицы в phpMyAdmin?

Есть таблица users, где пишутся логин и пароль, есть отдельная таблица students, где вся информация про студента - типа имя, возраст, адрес

400
PHP shared memory - перезапись c изменением размера, или аналог realloc

PHP shared memory - перезапись c изменением размера, или аналог realloc

В блоке общей памяти должна постоянно обновляться информация, которая приходит часто (15 - 25 раз в секунду)Размеры каждой "порции" отличаются,...

331