[Php-avanzado] Problema con texto generado con GD

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Dom Nov 4 22:37:22 ART 2012



Qué te dice el log de errores del servidor?



El dom, 04-11-2012 a las 22:16 -0300, Juan Manuel P. escribió:
> Buenas, queria saber si alguien puede llegar a ayudarme a entender el
> porque el codigo que voy a adjuntar no me genera las letras dentro de
> la imagen.
> Lo pruebo en mi localhost y funciona perfectamente, lo subo a un
> hosting y las letras no aparecen. Reviso la configuracion con phpinfo
> de mi localhost y del hosting y son casi identicas (tambien las
> adjunto).
> 
> Desde ya muchas Gracias.
> 
> Archivo php para generar un Captcha
> 
> <?php
>     session_start();
>     function CreateLines($img,$w,$h,$c,$y) 
>     {
>         //Creo el Largo de la Linea
>         $Largo=rand(50,130);
>         //Creo la Posicion inicial X
>         do 
>         {
>             $PosXi=rand(0,50);
>         }while(($PosXi+$Largo)>150);
>         //Creo la Posicion inicial Y
>         $PosYi=rand($y,$y+14);
>         //Creo la Posicion Final Y
>         do 
>         {
>             $PosYf=rand(1,49);
>         }while($PosYi!==$PosYf);
>         //Creo el ancho de la linea 
>         imagesetthickness($img, 1);
>         //Creo las lineas en la imagen
>         imageline($img, $PosXi, $PosYi, $PosXi+$Largo, $PosYf, $c);
>     }
>     
>     function GenerateCaptcha($letra) 
>     {
>         $width=150;
>         $height=50;    
>         $Fondo=imagecreate($width, $height);
>         $Color = imagecolorallocate($Fondo,255,50,0);
>         $colorFondo=imagecolorallocate($Fondo, 40, 170, 0);
>         $ColorLinea = imagecolorallocate($Fondo,255,50,0);
>         imagefill($Fondo, 0, 0, $colorFondo);
>         $CantLines=0;
>         $PosY=3;
>         do 
>         {
>             CreateLines($Fondo,$width,$height,$ColorLinea,$PosY);
>             $CantLines++;
>             $PosY=$PosY+15;
>         }while($CantLines<3);
>         // Reemplace la ruta por la de su propia fuente
>         $fuente = "Font/DACTYLOG.TTF";
>         // Añadir el texto
>         $CantLet=0;
>         $LetInit=5;
>         do 
>         {
>             $angulo=rand(0,10);
>         
>             imagefttext($Fondo, rand(20,25), $angulo, rand($LetInit,
> $LetInit+10), rand(25,45), $Color, $fuente, substr($letra,
> $CantLet,1));
>             //imagettftext($Fondo, rand(20,25), $angulo,
> rand($LetInit,$LetInit+10), rand(25,45), $Color, $fuente,
> substr($letra, $CantLet,1));
>             $CantLet++;
>             $LetInit=$LetInit+27;
>         }while($CantLet < strlen($letra));
>         // Imprimir la imagen al navegador
>         header("Content-type: image/png");
>         imagepng($Fondo); 
>     }
>   //En el php que lo llama a este se genera un string de 5 caracteres
> al azar entre letras y numeros que se guarda en $_SESSION["captcha"] ,
> probe haciendo un print_r($_SESSION) y la cadena se genera
> perfectamente.
>     GenerateCaptcha($_SESSION["captcha"]);
> ?>
> 
> La direccion de la fuente con el archivo existe, probe con la fuente
> arial y con esta otra que hace referencia $fuente
> 
> 
> Phpinfo de libreria GD en localhost:
> 
> gd
> GD Support 
> enabled 
> GD Version 
> 2.0 
> FreeType Support 
> enabled 
> FreeType Linkage 
> with freetype 
> FreeType Version 
> 2.4.4 
> T1Lib Support 
> enabled 
> GIF Read Support 
> enabled 
> GIF Create Support 
> enabled 
> JPEG Support 
> enabled 
> libJPEG Version 
> 6b 
> PNG Support 
> enabled 
> libPNG Version 
> 1.2.46 
> WBMP Support 
> enabled 
> 
> 
> Phpinfo de libreria GD en el hosting:
> 
> gd
> GD Support 
> enabled 
> GD Version 
> bundled (2.0.34 compatible) 
> FreeType Support 
> enabled 
> FreeType Linkage 
> with freetype 
> FreeType Version 
> 2.4.2 
> GIF Read Support 
> enabled 
> GIF Create Support 
> enabled 
> JPEG Support 
> enabled 
> libJPEG Version 
> 6b 
> PNG Support 
> enabled 
> libPNG Version 
> 1.2.44 
> WBMP Support 
> enabled 
> XBM Support 
> enabled 
> 
> 
> Como pueden ver incluso la version de gd es superior en el hosting, y
> de acuerdo a php.net que recomienda tener una gd superior a la version
> 2.0.28
> 
> Alguien puede ver o se le ocurre en que puede estar fallando o si
> necesitan alguna otra informacion para ayudarme solo me dicen y la
> subo.
> 
> Muchas Gracias.
> 
> In his heart, in his eyes
> In his soul, there’s no sign of thunder
> Screams, can you hear the screaming
> When another restless soul must die
> 
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado

-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado