(Bir sürüm bilgisi bulunamadı; sadece SVN'de olabilir.)
Imagick::sparseColorImage — Interpolates colors
$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
.
Bu yöntem, derleme sırasında
ImageMagick kütüphanesinin 6.4.5 veya sonraki bir sürümü kuruluysa
kullanılabilir.
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
Normalde kanal
türü sabitlerinden biridir, ancak bitsel işleçler kullanılarak birden
fazla kanal belirtilebilir. Imagick::CHANNEL_DEFAULT
öntanımlıdır.
Başarı durumunda TRUE
döner.
Hata durumunda bir ImagickException istisnası oluşur.
Örnek 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();
}
?>
Örnek 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();
}
?>
Örnek 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();
}
?>
Örnek 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();
}
?>
Örnek 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();
}
?>
Örnek 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;
}
?>