ImagickPixel::getColor
(PECL imagick 2.0.0)
ImagickPixel::getColor — Возвращает цвет
Описание
array ImagickPixel::getColor
([ bool
$normalized
= false
] )Возвращает цвет в виде массива, описанный в объекте ImagickPixel. Если у цвета установлен канал прозрачности, то он будет отражен в четвертом значении списка.
Список параметров
-
normalized
-
Нормализовать значение цвета
Возвращаемые значения
Массив значений канала. Каждое значение нормализуется, если параметру
будет передано TRUE
. В случае ошибки создаст исключение
ImagickPixelException.
Примеры
Пример #1 Пример использования Imagick::getColor()
<?php
// Создание ImagickPixel со стандартным цветом 'brown'
$color = new ImagickPixel('brown');
// настройка цвета с альфа каналом 25%
$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);
$colorInfo = $color->getColor();
echo "Стандартные значения" . PHP_EOL;
print_r($colorInfo);
$colorInfo = $color->getColor(true);
echo "Нормализованные значения:" . PHP_EOL;
print_r($colorInfo);
?>
Результат выполнения данного примера:
Стандартные значения Array ( [r] => 165 [g] => 42 [b] => 42 [a] => 0 ) Нормализованные значения: Array ( [r] => 0.64705882352941 [g] => 0.16470588235294 [b] => 0.16470588235294 [a] => 0.25000381475547 )
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Обработка и генерация изображений
- Обработка изображений (ImageMagick)
- Функция ImagickPixel::clear() - Очищает ресурсы, связанные с этим объектом
- Функция ImagickPixel::__construct() - Конструктор ImagickPixel
- Функция ImagickPixel::destroy() - Освобождает ресурсы, связанные с этим объектом
- Функция ImagickPixel::getColor() - Возвращает цвет
- Функция ImagickPixel::getColorAsString() - Возвращает цвет в виде строки
- Функция ImagickPixel::getColorCount() - Возвращает количество цветов связанных с этим цветом
- ImagickPixel::getColorQuantum
- Функция ImagickPixel::getColorValue() - Возвращает нормализованное значение цвета канала
- ImagickPixel::getColorValueQuantum
- Функция ImagickPixel::getHSL() - Возвращает нормализованный HSL-цвет объекта ImagickPixel
- ImagickPixel::getIndex
- Функция ImagickPixel::isPixelSimilar() - Check the distance between this color and another
- ImagickPixel::isPixelSimilarQuantum
- Функция ImagickPixel::isSimilar() - Проверить разницу между этим цветом и другим
- Функция ImagickPixel::setColor() - Устанавливает цвет
- ImagickPixel::setColorCount
- Функция ImagickPixel::setColorValue() - Устанавливает нормализованное значение одного из каналов
- ImagickPixel::setColorValueQuantum
- Функция ImagickPixel::setHSL() - Установка нормализованного HSL цвета
- ImagickPixel::setIndex
Коментарии
In case you use default un-normalized getColor value the alpha value will always be either 0 or 1.
If you want to use real full-range 0-1 alpha channel on your 24bit transparent images use the alpha value from the normalized one, even if you use the rest of unnormalized data.
To copy a 24bit png with real alpha transparency, you would have to do this:
<?php
$im=new Imagick( 'image.png' );
$iterator=$im->getPixelIterator();
foreach ($iterator as $row=>$pixels) {
foreach ( $pixels as $column => $pixel ){
$un_color=$pixel->getColor(); //unnormalized color
$nor_color=$pixel->getColor(true); //normalized color
$pixel->setColor('rgba('.$un_color['r'].','.$un_color['g'].','.$un_color['b'].','.$nor_color['a'].')');
}
}
?>
If you use 'a' (alpha) value from the unnormalized color there will only be binary transparency.