Imagick::sparseColorImage

(No version information available, might only be in Git)

Imagick::sparseColorImageInterpola colores

Descripción

public Imagick::sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Dada la matriz de argumentos que contiene valores númericos, este método interpola los colores encontrados en esas coordenadas a través de la imagen completa usando sparse_method. Este método está disponible si Imagick ha sido compilado con la versión 6.4.5 o superior de ImageMagick.

Parámetros

SPARSE_METHOD

Consulte esta lista de constantes de métodos de escasez

arguments

Una matriz que contiene las coodenadas. El formato de la matriz es array(1,1, 2,45)

CHANNEL

Proporciona cualquier contante de canal que sea válida para su modo de canal. Para aplicarlo a más de un canal, combine constantes de canal using bitwise operadores bit a bit. El valor por defecto para Imagick::CHANNEL_DEFAULT. Referirse a esta lista de constantes de canal

Valores devueltos

Devuelve TRUE en caso de éxito.

Errores/Excepciones

Lanza ImagickException en caso de error.

Ejemplos

Ejemplo #1 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
    
function renderImageBarycentric2() {
        
$points = [
            [
0.300.10'red'],
            [
0.100.80'blue'],
            [
0.700.60'lime'],
            [
0.800.20'yellow'],
        ];
        
$imagick createGradientImage(
            
400400,
            
$points,
            \
Imagick::SPARSECOLORMETHOD_BARYCENTRIC
        
);
        
header("Content-Type: image/png");
        echo 
$imagick->getImageBlob();
    }

?>

Ejemplo #2 SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage()

<?php
    
function renderImageBilinear() {
        
$points = [[0.300.10'red'], [0.100.80'blue'], [0.700.60'lime'], [0.800.20'yellow'],];
        
$imagick createGradientImage(500500$points, \Imagick::SPARSECOLORMETHOD_BILINEAR);
        
header("Content-Type: image/png");
        echo 
$imagick->getImageBlob();
    }

?>

Ejemplo #3 SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage()

<?php
    
function renderImageShepards() {
        
$points = [
            [
0.300.10'red'],
            [
0.100.80'blue'],
            [
0.700.60'lime'],
            [
0.800.20'yellow'],
        ];
        
$imagick createGradientImage(600600$points, \Imagick::SPARSECOLORMETHOD_SPEPARDS);
        
header("Content-Type: image/png");
        echo 
$imagick->getImageBlob();
    }

?>

Ejemplo #4 SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage()

<?php
    
function renderImageVoronoi() {
        
$points = [
            [
0.300.10'red'],
            [
0.100.80'blue'],
            [
0.700.60'lime'],
            [
0.800.20'yellow'],
        ];
        
$imagick createGradientImage(500500$points, \Imagick::SPARSECOLORMETHOD_VORONOI);
        
header("Content-Type: image/png");
        echo 
$imagick->getImageBlob();
    }

?>

Ejemplo #5 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
    
function renderImageBarycentric() {
        
$points = [
            [
00'skyblue'],
            [-
11'skyblue'],
            [
11'black'],
        ];
        
$imagick createGradientImage(600200$points, \Imagick::SPARSECOLORMETHOD_BARYCENTRIC);
        
header("Content-Type: image/png");
        echo 
$imagick->getImageBlob();
    }

?>

Ejemplo #6 createGradientImage is used by other examples. Imagick::sparseColorImage()

<?php
function createGradientImage($width$height$colorPoints$sparseMethod$absolute false) {

    
$imagick = new \Imagick();
    
$imagick->newImage($width$height"white");
    
$imagick->setImageFormat("png");

    
$barycentricPoints = array();

    foreach (
$colorPoints as $colorPoint) {

        if (
$absolute == true) {
            
$barycentricPoints[] = $colorPoint[0];
            
$barycentricPoints[] = $colorPoint[1];
        }
        else {
            
$barycentricPoints[] = $colorPoint[0] * $width;
            
$barycentricPoints[] = $colorPoint[1] * $height;
        }

        if (
is_string($colorPoint[2])) {
            
$imagickPixel = new \ImagickPixel($colorPoint[2]);
        }
        else if (
$colorPoint[2] instanceof \ImagickPixel) {
            
$imagickPixel $colorPoint[2];
        }
        else{
            
$errorMessage sprintf(
                
"Value %s is neither a string nor an ImagickPixel class. Cannot use as a color.",
                
$colorPoint[2]
            );

            throw new \
InvalidArgumentException(
                
$errorMessage
            
);
        }

        
$red $imagickPixel->getColorValue(\Imagick::COLOR_RED);
        
$green $imagickPixel->getColorValue(\Imagick::COLOR_GREEN);
        
$blue $imagickPixel->getColorValue(\Imagick::COLOR_BLUE);
        
$alpha $imagickPixel->getColorValue(\Imagick::COLOR_ALPHA);

        
$barycentricPoints[] = $red;
        
$barycentricPoints[] = $green;
        
$barycentricPoints[] = $blue;
        
$barycentricPoints[] = $alpha;
    }

    
$imagick->sparseColorImage($sparseMethod$barycentricPoints);

    return 
$imagick;
}

?>