Código PHP:
<?
session_start();
unset($_SESSION["code"]);
$ran=rand(1,3);
//cargamos la imagen desde un archivo jpg
$image = imagecreatefromjpeg("fondo-captcha-$ran.jpg");
//asignamos los colores que utilizaremos después
for($i=1;$i<=10;$i++){
$color1 = ImageColorAllocate($image, 200,1,10);
$color2 = ImageColorAllocate($image, 1,20,100);
$color3 = ImageColorAllocate($image, 1,2,3);} //$caption es el texto que se va a escribir
switch($ran){
case 1: $color=$color1;
break;
case 2: $color=$color2;
break;
case 3: $color=$color3;
break;}
for($ii=1;$ii<=3;$ii++){
$caption.=chr(rand(65,90));}
$_SESSION["code"]=$caption;
imagestring($image,rand(5,6),rand(8,20),rand(1,10),$caption,$color);
for($iii=1;$iii<=10;$iii++){
$a=rand(1,20);
$b=rand(1,50);
$c=rand(1,3);
switch($c){
case 1: $color=$color1;
break;
case 2: $color=$color2;
break;
case 3: $color=$color3;
break;}
imageline($image, $a, 100, $b, $a, $color);}
//definimos el encabezado de acuerdo con el tipo de datos de salida
header("Content-type: image/png");
//generamos la imagen
imagepng($image);
//liberamos la memoria ocupada por la imagen
imagedestroy($image);
?>
grax de antemano