Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/02/2008, 12:47
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Re: Posicionar texto en captcha

Cita:
Iniciado por GatorV Ver Mensaje
Ve la documentación de PHP el orden de los parámetros para imagetfttext.

Saludos.
Por mas que leo la documentacion... no me funciona...

Código PHP:
<?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("arial","comic","times");

//directorio donde estén las fuentes (ruta absoluta) importante el último /
$tipografias_ruta "C:\WINDOWS\Fonts\\";
// $tipografias_ruta="/home/sito/public_html/fonts/"; linux

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

//tamaño fuente.
$tamano_fuente 15;

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

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

$x=150;
$y=40;

// 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($im000); // Blanco
$color_texto imagecolorallocate($im255255255); // 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';

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

//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);
?>
La parte que he añadido...

Código PHP:
imagefttext($im$tamano_fuente01020$color_texto$tipografia$codigo{$caracter}); 
Esto es lo que dice la documentación...

Código:
array imagefttext  ( resource $image  , float $size  , float $angle  , int $x  , int $y  , int $col  , string $font_file  , string $text  [, array $extrainfo  ] )
Pues resulta que tal y como lo tengo puesto me genera dos codigos, el de antes que lo genera bien, pero pegado arriba y este nuevo... que lo genera en el sitio que le digo (10, 20) pero no genera bien el codigo!!!

Entonces ya no se como eliminar el primer codigo, y poner el segundo bien... como toca.

Una ayuda por favor...