Foros del Web » Programando para Internet » PHP »

imagettftext(): Could not read font in...

Estas en el tema de imagettftext(): Could not read font in... en el foro de PHP en Foros del Web. Hola, He estado haciendo un generador de imagen GD que en mi servidor local genera la imagen perfectamente pero al subirla no me la genera ...
  #1 (permalink)  
Antiguo 17/04/2010, 07:27
 
Fecha de Ingreso: julio-2008
Ubicación: /public_html/elrodri
Mensajes: 32
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta imagettftext(): Could not read font in...

Hola,

He estado haciendo un generador de imagen GD que en mi servidor local genera la imagen perfectamente pero al subirla no me la genera por hay varios error y no se como solucionarlos.

Cita:
No se puede mostrar la imagen "http://www.urlpagina.info/firma.php" por que contiene errores.
El archivo error_log me remite esto:
Cita:
[17-Apr-2010 15:20:02] PHP Warning: imagettftext() [function.imagettftext]: Could not read font in /home/xxx/public_html/www/firma.php on line 48
El código donde tendría que estar el fallo no veo nada raro, ya que en mi servidor local la genera perfectamente.
Código:
...
$nombre = "ElRodri";

$negro = imagecolorallocate( $firma, 0, 0, 0 );

$fuente = "font/army.ttf";

imagettftext( $firma, 22, 0, 30, 26, $negro, $fuente, $nombre );
...
Como puedo solucionarlo?

En en servidor local como en el otro la versión del PHP es la 5
  #2 (permalink)  
Antiguo 17/04/2010, 07:57
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: imagettftext(): Could not read font in...

Y tienes la fuente en el path en donde le indicas?
__________________
I see dead pixels
  #3 (permalink)  
Antiguo 17/04/2010, 08:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: imagettftext(): Could not read font in...

El error te está indicando que no pudo leer el font. Verifica que desde donde está el archivo de php pueda leer la dirección del "font".
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 17/04/2010, 09:01
 
Fecha de Ingreso: julio-2008
Ubicación: /public_html/elrodri
Mensajes: 32
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: imagettftext(): Could not read font in...

Si borro las fuentes de la carpeta font me da este error:
Cita:
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/xxx/public_html/www/firmaxxx.php on line 11
Pero cuando pongo bien la ruta me tira este otro error:
Cita:
Warning: imagettftext() [function.imagettftext]: Could not read font in /home/xxx/public_html/www/firmaxxx.php on line 11
Este es el código fuente simplificado pero con el mismo error que añadiendo fondo, y demás cosas...

Código PHP:
<?php

header
"Content-type: image/gif" );

$nombre "ElRodri";

$firma imagecreatetruecolor400100 );

$negro imagecolorallocate$firma00);

$fuente "font/army.ttf";

imagettftext$firma2203026$negro$fuente$nombre );

imagegif$firma NULL 100 );

imagedestroy$firma );

?>
Los archivos están colocados así:
  • [www]
    • [fondos]
      • fondo_01.gif
    • [font]
      • army.ttf
      • davidsans.ttf
    • firmaxxx.php
    • firma.php
    • ...

Es muy raro por que en el servidor local xampp funciona y al subirlo todo exacto al hosting no va
  #5 (permalink)  
Antiguo 17/04/2010, 09:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: imagettftext(): Could not read font in...

lo que sucede es que no tienes permisos sobre el archivo de la fuente, ya que el error te dice muy claramente que no se puede leer...

en todo caso, el script que ejecuta necesita permisos de lectura y escritura, además de la carpeta de la fuente y la fuente misma...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 17/04/2010, 11:59
 
Fecha de Ingreso: julio-2008
Ubicación: /public_html/elrodri
Mensajes: 32
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: imagettftext(): Could not read font in...

Que cosa más rara.

Si le pongo a todos los archivos y carpetas permisos 0777 el server me dice internal server error osea error 500

Pero si le pongo los permisos normales a firmaxxx.php me sigue tirando el mismo error.

Podría ser algún problema del servidor? ya que como comente en mi servidor local funciona sin problemas.
  #7 (permalink)  
Antiguo 17/04/2010, 13:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: imagettftext(): Could not read font in...

Por si te interesa he conseguido hacer uno mio:

Código PHP:
<?php 

$banner 
"tu banner.png";
if(
eregi('.gif',$_REQUEST[ruta])) {
$fuente imagecreatefromgif($_REQUEST[ruta]);
}
elseif(
eregi('.jpeg',$_REQUEST[ruta])||eregi('.jpg',$_REQUEST[ruta])) {
$fuente imagecreatefromjpeg($_REQUEST[ruta]);
}
elseif(
eregi('.png',$_REQUEST[ruta])) {
$fuente imagecreatefrompng($_REQUEST[ruta]);
}
$watermark imagecreatefrompng('$banner');
$imgAncho imagesx ($fuente);
$imgAlto =imagesy($fuente);
$imagen ImageCreate($_REQUEST[ancho],$_REQUEST[alto]);
$naranja imagecolorallocate($imagen209209209);
$texto $_REQUEST['texto'];  
$dest_x $_REQUEST[ancho] - $_REQUEST[ancho] - 0;
$dest_y $_REQUEST[alto] - 33 0;
imagecopyresized($imagen$fuente0000$_REQUEST[ancho], $_REQUEST[alto], $imgAncho$imgAlto);
imagecopyresampled($imagen$watermark$dest_x$dest_y00,  $_REQUEST[ancho], 3363$_REQUEST[ancho]);
imagestring($imagen510$dest_y 5$texto$naranja);
if(
eregi('.gif',$_REQUEST[ruta])) {
Header("Content-type: image/gif");
imageGif($imagen);
}
elseif(
eregi('.jpeg',$_REQUEST[ruta])||eregi('.jpg',$_REQUEST[ruta])) {
Header("Content-type: image/jpeg");
imageJPEG($imagen);
}
elseif(
eregi('.png',$_REQUEST[ruta])) {
Header("Content-type: image/PNG");
imagePNG($imagen);
}


?>
Consta de un fondo que se envia con ruta=..., despues las medidas alto=, ancho=. Y despues el texto por texto=. Finalmente necesitamos una imagen que hace como de banner (es la variable $banner), que se pone encima la imagen con lo que el texto encima de ella. Un ejemplo:


Funciona en Gif, jpeg/jpg y png
  #8 (permalink)  
Antiguo 17/04/2010, 18:30
 
Fecha de Ingreso: julio-2008
Ubicación: /public_html/elrodri
Mensajes: 32
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: imagettftext(): Could not read font in...

totolia se agradece mucho tu aporte, lo malo es que yo tengo echo un pequeño script php que saca mis mensajes de un foro y las gracias que me han dado, pero a la hora de que haga la imagen me da error en las fuentes ttf =(

Ni por google ni nada encuentro solución, creo que me pondré en contacto con la empresa de hosting.
  #9 (permalink)  
Antiguo 17/04/2010, 19:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: imagettftext(): Could not read font in...

Yo tenia el mismo problema, busque y busque y nada
  #10 (permalink)  
Antiguo 18/04/2010, 16:03
 
Fecha de Ingreso: julio-2008
Ubicación: /public_html/elrodri
Mensajes: 32
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: imagettftext(): Could not read font in...

Lo que are al final es crear una firma sin fuentes ttf, sino que imprima texto normal del php.

Gracias a todos por la ayuda!

Edito:

Solución

Ya encontré el problema era e tipo de transferencias de archivos de mi ordenador a mi hosting que lo hacia en ASCII y por eso daba error, lo cambie a automático pero si lo pongo en binario ya estaría solucionado.

Un saludo y gracias de nuevo por esta fantástica comunidad!! :D

Última edición por ElRodri; 19/04/2010 a las 05:31
  #11 (permalink)  
Antiguo 20/07/2010, 10:10
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: imagettftext(): Could not read font in...

ElRodri

Explicame mas acerca del Ascci y binario...

Tengo el mismo problema que tienes, me sale el mismo error---> Could not find/open font in<----.

estaba usando imagestring anteriormente para escribir texto en una imagen, el detalle es que el tecto que da es limitado (tamaños 1 2 3 4 5), quiero poner tecto e ua image mas grande, por eso use el imagettftext que funciono perfectamente en mi servidor local, pero a la hora de subirlo al server me da el mismo error que tuviste...

Te agradecer si me ayudas ... gracias...
  #12 (permalink)  
Antiguo 02/11/2010, 09:40
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: imagettftext(): Could not read font in...

Me parece que se refiere al tipo de transferencia ftp, por ejemplo, al conectarse utilizando el Filezilla, en el menú Transferencia hay un submenú 'Tipo de Transferencia', donde te da la opción de escoger entre: Automático, ASCII y Binario.

Saludos,
  #13 (permalink)  
Antiguo 10/11/2010, 11:23
 
Fecha de Ingreso: noviembre-2010
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: imagettftext(): Could not read font in...

puedes ocupar este codigo

//poder abrir las fuentes
putenv('GDFONTPATH=' . realpath('.'));

// Nombrar la fuente que va ser usada (observe la ausencia de la extensión .ttf)
$fuentes = array('akbar', 'citizen', 'FGAaron','arial');

a mi me funciono perfecto

Etiquetas: font
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 17:46.