Foros del Web » Programando para Internet » PHP »

Generar captchas usando un ttf

Estas en el tema de Generar captchas usando un ttf en el foro de PHP en Foros del Web. Hola amigos/as, miren tengo un codigo que me sirve para generar captchas, y lo hace bien. Pero lo que necesito es que me cree captchas ...
  #1 (permalink)  
Antiguo 04/04/2015, 09:00
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Generar captchas usando un ttf

Hola amigos/as, miren tengo un codigo que me sirve para generar captchas, y lo hace bien.

Pero lo que necesito es que me cree captchas mediante un ttf , es decir que el captcha aleatorio tenga una tipografia.

ya que ahora mismo no lo hace.


Lo he intentado pero no me funciona.

Miren este es el codigo que tengo , y en el mismo codigo tengo al final del todo, dos lineas comentadas con un intento fallido para que me cogiera un .ttf


gracias de antemano.

Código PHP:
Ver original
  1. header("content-type: image/png");
  2. $imagen = imagecreate(150,50) or die ("Ha ocurrido un error en la libreria GD no esta disponible");
  3.  
  4. $color_fondo = imagecolorallocate($imagen, 0, 0, 0);
  5. $color_texto = imagecolorallocate($imagen, 255, 255, 255);
  6.  
  7. function generate_captcha($chars, $length)
  8.  
  9.     {
  10.         $captcha = null;
  11.        
  12.         for($x = 0; $x < $length; $x++)
  13.        
  14.             {
  15.                 $rand = rand(0, count($chars)-1);
  16.                 $captcha .= $chars[$rand]; 
  17.             }
  18.            
  19.             return $captcha;
  20.     }
  21.    
  22.     $captcha = generate_captcha(array(0,1,2,3,4,5,6,7,8,9, 'a','b','c','d','e','f'), 4);
  23.    
  24.     setcookie('captcha', sha1($captcha), time()+60*3);
  25.    
  26.     imagestring($imagen, 5, 55 ,15, $captcha, $color_texto);
  27.  
  28.     //$font_size = 30;
  29.     //imagettftext($imagen, $font_size, 0,12,30, $font_size, 'AHGBold.ttf');   
  30.    
  31.     imagepng($imagen);
  #2 (permalink)  
Antiguo 04/04/2015, 09:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Generar captchas usando un ttf

El uso de fuentes TTF implica una configuración especial.

Eso se explica perfectamente en el manual ¿ya lo has revisado?

http://php.net/manual/es/function.imagettftext.php

Cita:

La ruta de la fuente TrueType que se desea usar.

Dependiendo de la versión de GD que esté usando PHP, cuando fontfile no comienza con un / inicial, .ttf será añadido al nombre de archivo, y la biblioteca intentará buscar ese nombre de archivo en una ruta de biblioteca definida de fuentes.

Cuando se usan versiones de la biblioteca GD anteriores a 2.0.18, un carácter espacio, en vez de un punto y coma, es usado como el 'separador de ruta' para diferentes archivos de fuente. El uso involuntario de esta característica resultará en en el mensaje de advertencia: Warning: Could not find/open font. La única solución para estas versiones afectadas es mover la fuente a una ruta que no contenga espacios.

En muchos casos donde una fuente reside en el mismo derectorio que el script, el siguiente truco paliará cualquier problema de inclusión.
Código PHP:
<?php
    
// Establecer la variable de entorno para GD
    
putenv('GDFONTPATH=' realpath('.'));

    
// Nombrar la fuente que va ser usada (observe la ausencia de la extensión .ttf)
    
$fuente 'UnaFuente';
    
?>
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: usando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:07.