mmm, se que el tema es antiguo, pero, aun asi respondere para los que pasen por esto:
simplemente suma los valores rgb y luego dividelo entre 3:
Código PHP:
$red = $color_tran["red"];
$green = $color_tran["green"];
$blue = $color_tran["blue"];
$t = ($red + $green + $blue) / 3;
imagesetpixel($nImagen, $i, $j, imagecolorallocate($nImagen, $t, $t, $t));