在线文档教程
PHP
Image/ImageMagick

Imagick::sparseColorImage

Imagick::sparseColorImage

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

Imagick::sparseColorImage — Interpolates colors

Description

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

Given the arguments array containing numeric values this method interpolates the colors found at those coordinates across the whole image using sparse_method. This method is available if Imagick has been compiled against ImageMagick version 6.4.5 or newer.

Parameters

SPARSE_METHOD

Refer to this list of sparse method constants

arguments

An array containing the coordinates. The array is in format array(1,1, 2,45)

CHANNEL

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants

Return Values

Returns TRUE on success.

Errors/Exceptions

Throws ImagickException on error.

Examples

Example #1 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php     function renderImageBarycentric2() {         $points = [             [0.30, 0.10, 'red'],             [0.10, 0.80, 'blue'],             [0.70, 0.60, 'lime'],             [0.80, 0.20, 'yellow'],         ];         $imagick = createGradientImage(             400, 400,             $points,             \Imagick::SPARSECOLORMETHOD_BARYCENTRIC                  header("Content-Type: image/png"         echo $imagick->getImageBlob(     } ?>

Example #2 SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage()

<?php     function renderImageBilinear() {         $points = [[0.30, 0.10, 'red'], [0.10, 0.80, 'blue'], [0.70, 0.60, 'lime'], [0.80, 0.20, 'yellow'],];         $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_BILINEAR         header("Content-Type: image/png"         echo $imagick->getImageBlob(     } ?>

Example #3 SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage()

<?php     function renderImageShepards() {         $points = [             [0.30, 0.10, 'red'],             [0.10, 0.80, 'blue'],             [0.70, 0.60, 'lime'],             [0.80, 0.20, 'yellow'],         ];         $imagick = createGradientImage(600, 600, $points, \Imagick::SPARSECOLORMETHOD_SPEPARDS         header("Content-Type: image/png"         echo $imagick->getImageBlob(     } ?>

Example #4 SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage()

<?php     function renderImageVoronoi() {         $points = [             [0.30, 0.10, 'red'],             [0.10, 0.80, 'blue'],             [0.70, 0.60, 'lime'],             [0.80, 0.20, 'yellow'],         ];         $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_VORONOI         header("Content-Type: image/png"         echo $imagick->getImageBlob(     } ?>

Example #5 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

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

Example #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; } ?>

← Imagick::solarizeImage

Imagick::spliceImage →

© 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

https://secure.php.net/manual/en/imagick.sparsecolorimage.php