ImagickPixel::getColorValue
(PECL imagick 2.0.0)
ImagickPixel::getColorValue — Gets the normalized value of the provided color channel
Description
$color
)Retrieves the value of the color channel specified, as a floating-point number between 0 and 1.
Parameters
-
color
-
The color to get the value of, specified as one of the Imagick color constants. This can be one of the RGB colors, CMYK colors, alpha and opacity e.g (Imagick::COLOR_BLUE, Imagick::COLOR_MAGENTA).
Return Values
The value of the channel, as a normalized floating-point number, throwing ImagickPixelException on error.
Examples
Example #1 Basic Imagick::getColorValue() usage
<?php
$color = new ImagickPixel('rgba(90%, 20%, 20%, 0.75)');
echo "Alpha value is ".$color->getColorValue(Imagick::COLOR_ALPHA).PHP_EOL;
echo "".PHP_EOL;
echo "Red value is ".$color->getColorValue(Imagick::COLOR_RED).PHP_EOL;
echo "Green value is ".$color->getColorValue(Imagick::COLOR_GREEN).PHP_EOL;
echo "Blue value is ".$color->getColorValue(Imagick::COLOR_BLUE).PHP_EOL;
echo "".PHP_EOL;
echo "Cyan value is ".$color->getColorValue(Imagick::COLOR_CYAN).PHP_EOL;
echo "Magenta value is ".$color->getColorValue(Imagick::COLOR_MAGENTA).PHP_EOL;
echo "Yellow value is ".$color->getColorValue(Imagick::COLOR_YELLOW).PHP_EOL;
echo "Black value is ".$color->getColorValue(Imagick::COLOR_BLACK).PHP_EOL;
?>
The above example will output:
Alpha value is 0.74999618524453 Red value is 0.90000762951095 Green value is 0.2 Blue value is 0.2 Cyan value is 0.90000762951095 Magenta value is 0.2 Yellow value is 0.2 Black value is 0
- 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
Коментарии
QUOTE: $color The channel to check, specified as one of the Imagick channel constants.
$color is a COLOR_* constant, not a channel constant
e.g.
<?php
$image=new Imagick();
$image->readImage('test.png');
$point=$image->getImagePixelColor(0,0);
echo ' Alpha:'.$point->getColorValue(imagick::COLOR_ALPHA);
echo ' Opacity:'.$point->getColorValue(imagick::COLOR_OPACITY);
echo ' R:'.$point->getColorValue(imagick::COLOR_RED);
echo ' G:'.$point->getColorValue(imagick::COLOR_GREEN);
echo ' B:'.$point->getColorValue(imagick::COLOR_BLUE);
?>
When getting a color value back with getColorValue, you are free to use any color scheme: either the Red/Green/Blue (RGB) scheme or the Cyan/Magenta/Yellow/blacK (CMYK) scheme. For RGB, this function works with the constant values of "COLOR_RED", "COLOR_GREEN", and "COLOR_BLUE," and for CMYK, this function works with the constant values of "COLOR_CYAN", "COLOR_MAGENTA", "COLOR_YELLOW", and "COLOR_BLACK". As a programmer, the main question you're probably asking yourself is "How do I know if one pixel's color is different from the others?" That seems to be defined as a unique combination of RGB *or* CMYK values. Each RGB set of values with have a unique set of CMYK values for only that set of RGB values, so an RGB of 1/0.5/0.5 with have a unique set of CMYK values, shared only by the other pixels of the same exact RGB values.
Why the CMYK? Because that is the standard for printing, or to quote the Imagick site, "As such for printing we use four colored inks: Cyan, Magenta, Yellow, and blacK; and define images using these inks, to form a CMYK color space." By being a "color space", you get the choice of working with either RGB or CMYK when defining a pixel as being unique among a set of pixels. But you are completely free to go with either RGB or CMYK. For more on it from the Imagick Site:
http://www.imagemagick.org/Usage/color_basics/
Some code that demonstrates both methods: (for a purple-ish red pixel)
<?php
// Grab Pixel
// ---------------------------------------------------
$pixel_one = $imagick_type->getImagePixelColor(0,0);
// Grab Alpha/Opacity Values
// ---------------------------------------------------
$pixel_one_color_value_alpha = $pixel_one->getColorValue(imagick::COLOR_ALPHA);
$pixel_one_color_value_opacity = $pixel_one->getColorValue(imagick::COLOR_OPACITY);
// Grab Red/Green/Blue (RGB) Values
// ---------------------------------------------------
$pixel_one_color_value_red = $pixel_one->getColorValue(imagick::COLOR_RED);
$pixel_one_color_value_green = $pixel_one->getColorValue(imagick::COLOR_GREEN);
$pixel_one_color_value_blue = $pixel_one->getColorValue(imagick::COLOR_BLUE);
// Grab Cyna/Magenta/Yellow/blacK (CMYK) Values
// ---------------------------------------------------
$pixel_one_color_value_cyan = $pixel_one->getColorValue(imagick::COLOR_CYAN);
$pixel_one_color_value_magenta = $pixel_one->getColorValue(imagick::COLOR_MAGENTA);
$pixel_one_color_value_yellow = $pixel_one->getColorValue(imagick::COLOR_YELLOW);
$pixel_one_color_value_black = $pixel_one->getColorValue(imagick::COLOR_BLACK);
// Print Results
// ---------------------------------------------------
print("Alpha: $pixel_one_color_value_alpha<br>");
print("Opacity: $pixel_one_color_value_opacity<br><br>");
print("---------------------------------------------<br><br>");
print("Red: $pixel_one_color_value_red<br>");
print("Green: $pixel_one_color_value_green<br>");
print("Blue: $pixel_one_color_value_blue<br><br>");
print("Cyan: $pixel_one_color_value_cyan<br>");
print("Magenta: $pixel_one_color_value_magenta<br>");
print("Yellow: $pixel_one_color_value_yellow<br>");
print("Black: $pixel_one_color_value_black<br><br>");
/*
Example Results : : :
-----------------------
Alpha: 1
Opacity: 0
---------------------------------------------
Red: 1
Green: 0.501960784314
Blue: 0.501960784314
Cyan: 1
Magenta: 0.501960784314
Yellow: 0.501960784314
Black: 0
*/
?>
COLOR_ALPHA - not fully transparent pixel
COLOR_OPACITY - completely transparent pixel