首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Imagick::sparseColorImage

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

Imagick::sparseColorImage — Interpolates colors

Description

代码语言:javascript
复制
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()

代码语言:javascript
复制
<?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()

代码语言:javascript
复制
<?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()

代码语言:javascript
复制
<?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()

代码语言:javascript
复制
<?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()

代码语言:javascript
复制
<?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()

代码语言:javascript
复制
<?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 →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

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

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com