Viendo php.net ..
Fijate en la función:
http://www.php.net/imagecolorallocate
En los comentarios de los usuarios se dan várias alternativas para obtener tu "escala de grises" de tu imagen ..
También tienes alternativas usando:
imagecolorset()
http://www.php.net/manual/es/function.imagecolorset.php
(lo que no sé si acepta imagenes "true color" .. )
En fin .. .. que tienes que entretenerte en php.net leyendo las numerosas funciones de GD que hay .. y.. sobre todo los comentarios de los usuarios de dichas funciones que traen ejemplos (más que los de la própia documentación oficial).
Un saludo,