For those curious how to use sparseColorImage() directly without the seperate createGradientImage() function.. here is the format of the array used:
Array (
[0] => 0 / X1 (X coordinate value #1)
[1] => 0 / Y1 (Y coordinate value #1)
[2] => 1 / R (red value between 0 and 1)
[3] => 0 / G (green value between 0 and 1)
[4] => 0 / B (blue value between 0 and 1)
[5] => 1 / A (alpha value between 0 and 1)
[6] => 400 / X2
[7] => 0 / Y2
[8] => 0 / R
[9] => 1 / G
[10] => 0 / B
[11] => 1 / A
[12] => 0 / X3
[13] => 400 / Y3
[14] => 1 / R
[15] => 1 / G
[16] => 0 / B
[17] => 1 / A
[18] => 400 / X4
[19] => 400 / Y4
[20] => 0 / R
[21] => 0 / G
[22] => 1 / B
[23] => 1 / A
)
<?php
$imagick = new imagick();
$imagick->newImage(400,400,"white");
$imagick->setImageFormat("png");
$array = Array(0,0,1,0,0,1,400,0,0,1,0,1,0,400,1,1,0,1,400,400,0,0,1,1);
$imagick->sparseColorImage(imagick::SPARSECOLORMETHOD_BILINEAR,$array);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>