RGBヒートマップ

<?php

function getR($i){
    if($i < 128){
        $ret = 0;
    } else if($i > 127 && $i < 191){
        $ret = ($i-127)*4;
    } else if ($i > 190){
        $ret = 255;
    }
    return $ret;
}
function getG($i){
    if($i >= 64 && $i <= 191){
        $ret = 255;
    } else if ($i < 64){
        $ret = $i * 4;
    } else {
        $ret = 256-($i-191)*4;
    }
    return $ret;
}
function getB($i){
    if($i <= 64){
        $ret = 255;
    }else if($i > 64 && $i < 127){
        $ret = 255-($i-64)*4;
    } else if($i >= 127){
        $ret = 0;
    }
    return $ret;
}
header("content-type: image/png");
$image = imagecreate(512,100);
for($i = 0; $i < 256; $i++){
    $tmp = imagecolorallocate($image, getR($i), getG($i), getB($i));
    imagefilledrectangle($image, $i * 2, 0, ($i*2)+2, 99, $tmp);
}
imagepng($image);
imagedestroy($image);
?>