Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/02/2007, 21:31
Avatar de el cirujano
el cirujano
 
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 21 años
Puntos: 3
Re: Fondo cambiante en capcha

para estar en claro para todo el mundo estoy usando estos codigos propios del foro para mis pruebas....

para generar la imagen (CAPCHA) uso este código:
Código PHP:
// Iniciamos uso de sesiones ...
session_start(); 

//recogemos el texto por el URL que enviamos a generar desde el link de imagen del HTML de nuestro formulario
$codigo=$_SESSION['mipass'];

//nombres tipografías a usar (sin extensión .ttf)
$tipografias = array("evanescent","215000EURO","the_quiet_scream","ABUSO___","Alfred_24");

//directorio donde estén las fuentes (ruta absoluta) importante el último /
$tipografias_ruta "C:\Program%20Files\Apache Group\Apache2\htdocs\amazon\test\\";
// $tipografias_ruta="/var/www/html/test/";

//inicializa eje X desde donde se empezará a dibujar el código (referente al tamaño de la caja)
$espacio 7;

//tamaño fuente.
$tamano_fuente 35;

//profundidad caracteres/digitos del código a generar (password).
$profundidad_codigo 6// (alfanuméricos)

//cálculo Ancho automático de la caja

//$x = 130;
//$y = 50;
$x=$profundidad_codigo*$tamano_fuente+15;
$y=$tamano_fuente+15;

// Iniciar la generación de la imagen. Se define una caja de $x por $y pixels.
$im imagecreate($x$y);

//definición Colores. Expresados en valores R G B (respectivamente).
$color_fondo imagecolorallocate($im255255255); // Blanco
$color_texto imagecolorallocate($im000); // Negro

for($caracter=0$caracter<$profundidad_codigo$caracter++){
  
//seleccion de una tipografía aleatoria.
  
$indice_aleatorio=array_rand($tipografias);
  
$tipografia=$tipografias_ruta.$tipografias[$indice_aleatorio].'.ttf';

  
//generar el caracter gráfico.
  
imagettftext($im$tamano_fuente0$espacio$tamano_fuente$color_texto$tipografia $codigo{$caracter});
  
//separación entre caracteres
  
$espacio +=$tamano_fuente;
}

//cabecera HTTP la cual indica al navegador que la imagen que estamos generando es .PNG
header('Content-type: image/png');

//genera un png dinámico
imagepng($im);
//destruye la imagen del servidor
imagedestroy($im); 
y para generar el fondo uso este codigo
Código PHP:
header("Content-type:  image/png");
$alto 150;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i $i < ($ancho 2) ; $i  ++){
$radio = ($ancho  /2) - $i;
/*definimos un  color usando imagecolorallocatealpha , que es exactamente igual a  imagecolorallocate 
salvo que recibe un parametro extra que representa su  transparencia */
 
imagefilledellipse($imrand(20,$ancho), rand(20,$alto) , $radio$radio,imagecolorallocatealpha($im255 $r255 $g255 -$b,75));
if(
$r 255$r  += 3;
if(
$g <  255$g += 2;
if(
$b 255$b  += 1;

imagepng ($im);
imagedestroy($im); 
he probado de muchas formas y aun no consigo sobreponer el CAPCHA sobre el fondo dinamico que tengo, alguien sabe porque o algun tipo de ayuda?