Foros del Web » Programando para Internet » PHP »

Libreria GD errores con caracteres UTF-8

Estas en el tema de Libreria GD errores con caracteres UTF-8 en el foro de PHP en Foros del Web. Hola, Recientemente estoy haciendo un script en php usando la libreria GD y me he sacado la letra "verdana" de windows (osea con todos los ...
  #1 (permalink)  
Antiguo 28/10/2011, 20:22
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 1 mes
Puntos: 10
Libreria GD errores con caracteres UTF-8

Hola,

Recientemente estoy haciendo un script en php usando la libreria GD y me he sacado la letra "verdana" de windows (osea con todos los caracteres)

Mi problema es que al tener un texto con el caracter "♥" me sale un cuadrado con un fondo blanco...

pues revisnado por internet encontre que si ponia...

Código PHP:
Ver original
  1. $titulo = "♥-♥";
  2.  
  3. $titulo = mb_convert_encoding($titulo, "HTML-ENTITIES", "auto");
  4. $titulos = $titulo;
  5.  
  6. imagettftext($img, 13, 0, 119, 35, $negro, $nombreUT, $titulos);

Me salio de la siguiente manera "♥-♥", claro que por las dudas intente con:

Código PHP:
Ver original
  1. $titulo = mb_convert_encoding($titulo, "UTF-8", "auto");

Pero nada, pues como puedo hacer para que en la imagen se visualise correctamente ¿♥-♥?

gracias!
  #2 (permalink)  
Antiguo 29/10/2011, 10:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Libreria GD errores con caracteres UTF-8

Numero uno, la tipografía que intentes imprimir en la imagen debe contar con dicho carácter, ¿eso es correcto?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/10/2011, 16:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 1 mes
Puntos: 10
Respuesta: Libreria GD errores con caracteres UTF-8

Cita:
Iniciado por pateketrueke Ver Mensaje
Numero uno, la tipografía que intentes imprimir en la imagen debe contar con dicho carácter, ¿eso es correcto?
Si, puedes darte cuenta en ello habriendo un block de notas, escogiendo la letra verdana copiando el corazon y pegarlo y veras que sale correctamente.
  #4 (permalink)  
Antiguo 29/10/2011, 16:41
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Libreria GD errores con caracteres UTF-8

Hola que tal.

Recuerda que para que aparesca un cáracter especial en el navegador cuenta son un código especial. Lo que podrias hacer es sustituir el cáracter por el código que interpreta el navegador, en este caso es ♥ para visualizarlo correctamente.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #5 (permalink)  
Antiguo 29/10/2011, 20:32
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 1 mes
Puntos: 10
Respuesta: Libreria GD errores con caracteres UTF-8

Cita:
Iniciado por skiper0125 Ver Mensaje
Hola que tal.

Recuerda que para que aparesca un cáracter especial en el navegador cuenta son un código especial. Lo que podrias hacer es sustituir el cáracter por el código que interpreta el navegador, en este caso es ♥ para visualizarlo correctamente.

Saludos
me perdi, no entiendo tu posible solucion.
  #6 (permalink)  
Antiguo 30/10/2011, 19:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 1 mes
Puntos: 10
Respuesta: Libreria GD errores con caracteres UTF-8

UP

- revivo porque nesesto solucion urgente, gracias.
  #7 (permalink)  
Antiguo 30/10/2011, 20:26
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Libreria GD errores con caracteres UTF-8

Una pregunta que fuente estás usando? Porque con arial me funciona perfectamente.

Edit: Acabo de leer que verdana... Prueba con las siguientes:

- Arial (Me funcionó con esta arial.ttf)
- Times New Roman (Me funciona perfectamente con esta times.ttf)
- Century Gothic (Me funcionó tambien GOTHIC.ttf)

- Tahoma (Acabo de probar y no funciona lo convierte en cuadros)
- Verdana (No tiene el corazón lo convierte en cuadros)

Prueba con otras fuentes a ver.

Mi ejemplo de prueba:

Código PHP:
Ver original
  1. <?php
  2. // Set the content-type
  3. header('Content-Type: image/png');
  4.  
  5. // Create the image
  6. $im = imagecreatetruecolor(400, 30);
  7.  
  8. // Create some colors
  9. $white = imagecolorallocate($im, 255, 255, 255);
  10. $grey = imagecolorallocate($im, 128, 128, 128);
  11. $black = imagecolorallocate($im, 0, 0, 0);
  12. imagefilledrectangle($im, 0, 0, 399, 29, $white);
  13.  
  14. // The text to draw
  15. $text = '♥-♥';
  16. // Replace path by your own font path
  17. $font = 'arial.ttf';
  18.  
  19. // Add the text
  20. imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
  21.  
  22. // Using imagepng() results in clearer text compared with imagejpeg()
  23. imagepng($im);

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 30/10/2011 a las 20:41 Razón: Más pruebas
  #8 (permalink)  
Antiguo 30/10/2011, 21:21
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Libreria GD errores con caracteres UTF-8

@andresdzphp
Se me ocurrió probar tu ejemplo para ver por dónde podía estar el error de nuestro amigo, preparé la script y estaba por copiar la fuente arial.ttf a la carpeta donde la guardé (trabajando con Xampp), pero antes de copiar la fuente, simplemente ejecuté la script y funcionó...
Pregunto, como es que php encuentra la ruta de arial ttf? tenés idea

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 30/10/2011, 23:43
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Libreria GD errores con caracteres UTF-8

Así trabaja esa función imagettftext

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.
http://php.net/manual/es/function.imagettftext.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #10 (permalink)  
Antiguo 31/10/2011, 06:52
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Libreria GD errores con caracteres UTF-8

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.
eso en rearlidad lo tengo claro, lo que no me queda claro es como php sabe la existencia de C:\Windows\Fonts\arial.ttf ó donde tiene definida una biblioteca definida de fuentes, en php.ini no encuentro nada, y Windows de por sí, no tiene nada pareccido a %fonts% en las variables de entorno, la ubicación de la carpeta de fuentes está en el registro.
A eso concretamente me refería

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #11 (permalink)  
Antiguo 31/10/2011, 09:51
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Libreria GD errores con caracteres UTF-8

Me queda la duda, pero "supongo" que todo pasa durante la instalación y toma por defecto la que tenga windows. Porque si tiene una variable de entorno llamada GDFONTPATH, la cual se puede establecer con:

Código PHP:
Ver original
  1. putenv('GDFONTPATH=' . realpath('.'));
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #12 (permalink)  
Antiguo 31/10/2011, 10:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Libreria GD errores con caracteres UTF-8

Pero si la fuente la puedes colocar conde quieras, siempre y cuando pases su ruta absoluta a la función no debería haber problema.

Yo he trabajado ya con fuentes TTF y GD y jamás he tenido problemas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 31/10/2011, 10:33
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Libreria GD errores con caracteres UTF-8

Si a mi tampoco me ha dado problemas. Pero el punto es que windows en mi caso da prioridad a la carpeta de fuentes de windows por encima de la ruta relativa que tenga. Por eso debe colocarse la ruta absoluta como dices.

La duda es ¿Cómo PHP sabe de la existencia del directorio de fuentes de Windows?

Sería bueno que algún experto nos explique. ¿Es durante la instalación como tengo pensado o como sabe de esta ruta?

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #14 (permalink)  
Antiguo 31/10/2011, 11:06
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Libreria GD errores con caracteres UTF-8

Cita:
Iniciado por andresdzphp Ver Mensaje
La duda es ¿Cómo PHP sabe de la existencia del directorio de fuentes de Windows?
Sería bueno que algún experto nos explique. ¿Es durante la instalación como tengo pensado o como sabe de esta ruta?
Saludos.
Ese es justamente el tema, además yo php lo instalo desde el zip, y en Windows

cd %temp% te lleva a x:\temp (o lo que sea que hayamos definido)
pero no encuentro nada similar a %GDFONTPATH%, la ubicación de la carpeta de fuentes de Windows, repito, está determinada por una clave del registro

lo único que se me ocurre es que la php_gd2.dll tenga alguna instrucción al respecto

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: caracteres, errores, html, libreria, utf-8
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:35.