函式名:Imagick::sparseColorImage()
函式描述:Imagick::sparseColorImage()方法透過使用稀疏顏色方法對影象進行染色。此方法使用一系列的顏色和座標來建立一個新的影象。
適用版本:該函式在Imagick擴充套件版本3.3.0及以上可用。
語法:public Imagick Imagick::sparseColorImage ( array $arguments , int $channel = Imagick::CHANNEL_DEFAULT )
引數:
$arguments:包含顏色和座標的陣列。該陣列由一系列的引數組成,每個引數包含以下元素:
- "color":要應用的顏色。可以是字串形式的顏色名(例如"red")或RGB顏色值(例如"rgb(255,0,0)")。
- "x":要染色的畫素的x座標。
- "y":要染色的畫素的y座標。
- "method":染色方法。可選值有:
- Imagick::SPARSECOLORMETHOD_BARYCENTRIC:使用重心法進行染色。
- Imagick::SPARSECOLORMETHOD_BILINEAR:使用雙線性法進行染色。
- Imagick::SPARSECOLORMETHOD_POLYNOMIAL:使用多項式法進行染色。
- Imagick::SPARSECOLORMETHOD_SPEPARATINGPLANE:使用分離平面法進行染色。
- Imagick::SPARSECOLORMETHOD_VORONOI:使用Voronoi法進行染色。
- "arguments":染色方法所需的其他引數。
$channel(可選):要應用染色的通道。預設為Imagick::CHANNEL_DEFAULT。
返回值:成功時返回一個新的Imagick物件,失敗時返回false。
示例:
// 建立一個Imagick物件
$image = new Imagick('input.jpg');
// 定義稀疏顏色引數
$colorArguments = array(
array(
'color' => 'red',
'x' => 100,
'y' => 100,
'method' => Imagick::SPARSECOLORMETHOD_BARYCENTRIC,
'arguments' => array(1, 0, 0, 1)
),
array(
'color' => 'blue',
'x' => 200,
'y' => 200,
'method' => Imagick::SPARSECOLORMETHOD_BILINEAR,
'arguments' => array(0, 0, 1, 1)
)
);
// 應用稀疏顏色
$newImage = $image->sparseColorImage($colorArguments);
// 顯示新的影象
header('Content-Type: image/jpeg');
echo $newImage;
上述示例中,我們首先建立了一個Imagick物件,然後定義了稀疏顏色引數陣列$colorArguments。每個引數陣列包含顏色、座標、染色方法和方法引數。最後,我們呼叫sparseColorImage()方法,將引數陣列傳遞給它,並將返回的新Imagick物件賦給$newImage變數。最後,我們透過設定Content-Type頭部為image/jpeg來顯示新的影象。