/* {{{ proto array ImagickPixel::getColorQuantum() Returns the color of the pixel in an array as Quantum values. If ImageMagick was compiled as HDRI these will be floats, otherwise they will be integers */ PHP_METHOD(imagickpixel, getcolorquantum) { php_imagickpixel_object *internp; Quantum red, green, blue, alpha; if (zend_parse_parameters_none() == FAILURE) { return; } internp = Z_IMAGICKPIXEL_P(getThis()); array_init(return_value); red = PixelGetRedQuantum(internp->pixel_wand); green = PixelGetGreenQuantum(internp->pixel_wand); blue = PixelGetBlueQuantum(internp->pixel_wand) ; alpha = PixelGetAlphaQuantum(internp->pixel_wand); #if MAGICKCORE_HDRI_ENABLE add_assoc_double(return_value, "r", red); add_assoc_double(return_value, "g", green); add_assoc_double(return_value, "b", blue); add_assoc_double(return_value, "a", alpha); #else add_assoc_long(return_value, "r", (long)red); add_assoc_long(return_value, "g", (long)green); add_assoc_long(return_value, "b", (long)blue); add_assoc_long(return_value, "a", (long)alpha); #endif return; }
/* {{{ proto int ImagickPixel::getColorValueQuantum(int color) Gets the quantum color of the ImagickPixel */ PHP_METHOD(imagickpixel, getcolorvaluequantum) { php_imagickpixel_object *internp; long color, color_value; /* Parse parameters given to function */ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &color) == FAILURE) { return; } internp = (php_imagickpixel_object *)zend_object_store_get_object(getThis() TSRMLS_CC); switch (color) { case IMAGICKCOLORBLACK: color_value = PixelGetBlackQuantum(internp->pixel_wand); break; case IMAGICKCOLORBLUE: color_value = PixelGetBlueQuantum(internp->pixel_wand); break; case IMAGICKCOLORCYAN: color_value = PixelGetCyanQuantum(internp->pixel_wand); break; case IMAGICKCOLORGREEN: color_value = PixelGetGreenQuantum(internp->pixel_wand); break; case IMAGICKCOLORRED: color_value = PixelGetRedQuantum(internp->pixel_wand); break; case IMAGICKCOLORYELLOW: color_value = PixelGetYellowQuantum(internp->pixel_wand); break; case IMAGICKCOLORMAGENTA: color_value = PixelGetMagentaQuantum(internp->pixel_wand); break; case IMAGICKCOLOROPACITY: color_value = PixelGetOpacityQuantum(internp->pixel_wand); break; case IMAGICKCOLORALPHA: color_value = PixelGetAlphaQuantum(internp->pixel_wand); break; default: php_imagick_throw_exception (IMAGICKPIXEL_CLASS, "Unknown color type" TSRMLS_CC); return; break; } RETVAL_LONG(color_value); }
/* {{{ proto Quantum ImagickPixel::getColorValueQuantum(int color) Gets the quantum value of a color in the ImagickPixel. Quantum is a float if ImageMagick was compiled with HDRI otherwise an integer. */ PHP_METHOD(imagickpixel, getcolorvaluequantum) { php_imagickpixel_object *internp; im_long color; Quantum color_value; /* Parse parameters given to function */ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &color) == FAILURE) { return; } internp = Z_IMAGICKPIXEL_P(getThis()); switch (color) { case PHP_IMAGICK_COLOR_BLACK: color_value = PixelGetBlackQuantum(internp->pixel_wand); break; case PHP_IMAGICK_COLOR_BLUE: color_value = PixelGetBlueQuantum(internp->pixel_wand); break; case PHP_IMAGICK_COLOR_CYAN: color_value = PixelGetCyanQuantum(internp->pixel_wand); break; case PHP_IMAGICK_COLOR_GREEN: color_value = PixelGetGreenQuantum(internp->pixel_wand); break; case PHP_IMAGICK_COLOR_RED: color_value = PixelGetRedQuantum(internp->pixel_wand); break; case PHP_IMAGICK_COLOR_YELLOW: color_value = PixelGetYellowQuantum(internp->pixel_wand); break; case PHP_IMAGICK_COLOR_MAGENTA: color_value = PixelGetMagentaQuantum(internp->pixel_wand); break; #if MagickLibVersion < 0x700 case PHP_IMAGICK_COLOR_OPACITY: color_value = PixelGetOpacityQuantum(internp->pixel_wand); break; #endif case PHP_IMAGICK_COLOR_ALPHA: color_value = PixelGetAlphaQuantum(internp->pixel_wand); break; default: php_imagick_throw_exception (IMAGICKPIXEL_CLASS, "Unknown color type" TSRMLS_CC); return; break; } #if MAGICKCORE_HDRI_ENABLE RETVAL_DOUBLE(color_value); #else RETVAL_LONG(color_value); #endif }