Para trazar imagenes debemos tener instalado el soporte GD2 para PHP. Esto lo podemos verificar con la función phpinfo().

Creación de la Imagen
Para comenzar a crear una imagen debemos utilizar la función imagecreate( $ancho, $altura ); que solo acepta dos argumentos para especificar el tamaño de la imagen en pixeles.
/*! * Establecemos las medidas de la imagen en pixeles */ $ancho = 400; $altura = 400; /*! * Creamos la imagen con las medidas especificadas */ $imagen = imagecreate( $ancho, $altura );
Podemos colocarle un color de fondo, para esto utilizamos la función imagecolorallocate( $imagen, $red, $green, $blue ) donde especificamos a que imagen le colocaremos el color de fondo y los tres argumentos restantes los valores RGB respectivamente.
/*! * Colocamos un color RGB de fondo */ $fondo = imagecolorallocate( $imagen, 200, 200, 255 );
Hemos creado una imagen y colocado un color de fondo, pero aún no se mostrará hasta especificar al navegador que enviaremos una imagen con la función header() y enviarla con la función imagepng().
/*! * Especificamos al navegador que enviarémos una imagen PNG */ header( 'Content-Type: image/png' ); /*! * Enviamos la Imagen al navegador */ imagepng( $imagen );
Y finalmente, debemos destruir la imagen.
/*! * Destruimos la Imagen */ imagedestroy( $imagen );
Nuestra imagen será la siguiente.

Dibujando una Carita
Para dibujar una carita feliz utilizaremos la función imagearc( $imagen, $centroX, $centroY, $ancho, $alto, $inicio, $final, $color ); los parametros $inicio y $final se especifican en grados.
El siguente código lo debemos escribir justo antes del código header( 'Content-Type: image/png' );
/** Color de línea */ $color = imagecolorallocate( $imagen, 255, 0, 0 ); /** Cabeza */ imagearc( $imagen, 200, 200, 200, 200, 0, 360, $color ); /** Ojo izquierdo */ imagearc( $imagen, 160, 180, 50, 50, 190, -10, $color ); /** Ojo derecho */ imagearc( $imagen, 240, 180, 50, 50, 190, -10, $color ); /** Sonrísa */ imagearc( $imagen, 200, 200, 150, 150, 30, 150, $color );
La carita sonriente serála siguiente.

Agregando Texto
Para agregar texto a la imagen vamos a utilizar la función imagestring( $imagen, $letra, $x_posicion, $y_posicion, $texto, $color ).
En el segundo parámetro de la función especificamos el la letra que vamos autilizar por medio de un valor numérico (1 – 5), estas letras ya estan integradas en el paquete gráfico. Podemos cargar nuestras propias fuentes con la función imageloadfont.
/** Saludo */ $texto = "Hola GD!"; $letra = 5; imagestring( $imagen, $letra, 170, 350, $texto, $color_texto );

Código completo
Finalmente nuestro código queda de la siguiente manera.
/*! * Establecemos las medidas de la imagen en pixeles */ $ancho = 400; $altura = 400; /*! * Creamos la imagen con las medidas especificadas */ $imagen = imagecreate( $ancho, $altura ); /*! * Colocamos un color RGB de fondo */ $fondo = imagecolorallocate( $imagen, 200, 200, 255 ); /*! * Carita felíz */ /** Color de línea */ $color = imagecolorallocate( $imagen, 255, 0, 0 ); /** Cara */ imagearc( $imagen, 200, 200, 200, 200, 0, 360, $color ); imagearc( $imagen, 160, 180, 50, 50, 190, -10, $color ); imagearc( $imagen, 240, 180, 50, 50, 190, -10, $color ); imagearc( $imagen, 200, 200, 150, 150, 30, 150, $color ); /** Color de texto */ $color_texto = imagecolorallocate( $imagen, 255, 0, 255 ); /** Saludo */ $texto = "Hola GD!"; $letra = 5; imagestring( $imagen, $letra, 170, 350, $texto, $color_texto ); /*! * Especificamos al navegador que enviarémos una imagen PNG y * envíamos la imagen al navegador */ header( 'Content-Type: image/png' ); imagepng( $imagen ); /*! * Destruimos la Imagen */ imagedestroy( $imagen );