Foros del Web » Programando para Internet » PHP »

Crear imagenes con una fuente

Estas en el tema de Crear imagenes con una fuente en el foro de PHP en Foros del Web. Chicos existe la posibilidad de escribir un texto con una fuente establecida y guardarlo como imagen? Es que siempre ha habido ese problema, que para ...
  #1 (permalink)  
Antiguo 16/10/2006, 07:15
Avatar de [HH]KaoS  
Fecha de Ingreso: diciembre-2004
Ubicación: Nerja, Málaga (España)
Mensajes: 216
Antigüedad: 19 años, 4 meses
Puntos: 6
Crear imagenes con una fuente

Chicos existe la posibilidad de escribir un texto con una fuente establecida y guardarlo como imagen?

Es que siempre ha habido ese problema, que para los textos de las páginas siempre hay que utilizar una fuente que esté instalada en el cliente, y a veces esto es un incoveniente porque rompe totalmente el diseño de la web.

Sabeis alguna forma de solucionar esto? (a mi se me habia ocurrido solamente eso.

Salu2
__________________
Más información sobre mi: Raúl Jiménez
  #2 (permalink)  
Antiguo 16/10/2006, 07:24
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
¿Una fuente instalada en el cliente? Creo que te equivocas...

En el momento que llamas al PHP y pides que genere la imagen, éste busca una fuente instalada en el servidor (la que tú le digas) y al cliente le devuelve la imagen creada. Las fuentes del usuario no interactúan en ningún momento del proceso.
  #3 (permalink)  
Antiguo 16/10/2006, 07:37
Avatar de [HH]KaoS  
Fecha de Ingreso: diciembre-2004
Ubicación: Nerja, Málaga (España)
Mensajes: 216
Antigüedad: 19 años, 4 meses
Puntos: 6
Ahá, bueno y entonces mi problema radica en que el servidor es de pago y por tanto creo que no tengo la posibilidad de instalar fuentes tal cual.

Mi servidor funciona con Linux y mi fuente es ttf(windows). Es posible hacer de alguna forma que subiendo un archivo de fuentes al servidor (subiría otra) utilize este para crear la imagen con dicha fuente?(sin instalarlo porque creo que no tengo la posibilidad, aunque no sé bien como funcionan las fuentes en linux)

Un saludo y gracias por tu respuesta David.
Raúl
__________________
Más información sobre mi: Raúl Jiménez
  #4 (permalink)  
Antiguo 16/10/2006, 07:48
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Yo diría que se pueden subir al FTP. No estoy muy seguro en este tema.
  #5 (permalink)  
Antiguo 16/10/2006, 08:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Dentro de las funciones GD puedes usar tipografía True Type (.ttf de windows) tan sólo subiendo tu tipografía a tu servidor e indicar de donde la tiene que tomar las funciones implicadas. En Windows si no especificas nada las toma del sistema .. en Linux es obligatorio de preferencia indicar la ruta absoluta a las mismas o definir la constante de entorno GDFONTPATH.

Más info:
http://www.php.net/manual/es/function.imagettftext.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 16/10/2006, 12:22
Avatar de [HH]KaoS  
Fecha de Ingreso: diciembre-2004
Ubicación: Nerja, Málaga (España)
Mensajes: 216
Antigüedad: 19 años, 4 meses
Puntos: 6
Muchísimas gracias chicos por la ayuda, ya conseguí hacerlo, aunque como siempre algunas fuentes con el fondo transparente no me quedan bien.

Si las pongo como png algunos IE no lo interpretan bien,no?

Salu2
__________________
Más información sobre mi: Raúl Jiménez
  #7 (permalink)  
Antiguo 20/10/2006, 04:51
Avatar de [HH]KaoS  
Fecha de Ingreso: diciembre-2004
Ubicación: Nerja, Málaga (España)
Mensajes: 216
Antigüedad: 19 años, 4 meses
Puntos: 6
Buenas chicos, he estado haciendo pruebas y con png queda genial, dejo aquí el código por si alguien lo quiere reutilizar:

Código:
$fuente = 'CloisterBlack.ttf';
	//$fuente = 'RMGN.TTF';
	$font_size=$size;
	$ancho=$w;
	$alto=$h;
	
	header("Content-type: image/png");

	// Crear la imagen
	$im = imagecreate($ancho, $alto);
	
	// Crear algunos colores
	$blanco = imagecolorallocate($im, 255, 255, 255);
	$gris  = imagecolorallocate($im, 128, 128, 128);
	$gris_oscuro = imagecolorallocate($im, 48, 48, 48);
	$negro  = imagecolorallocate($im, 0, 0, 0);
	imagefilledrectangle($im, 0, 0, 399, 29, $negro);
	imagecolortransparent($im, $negro);
	
	// El texto a pintar
	$texto = $txt;
	
	// Agregar el texto
	imagettftext($im, $font_size, 0, 5, 20, $blanco, $fuente, $texto);
	
	// Usar imagepng() resulta en texto mas claro, en comparacion con imagejpeg()
	imagePng($im);
	imagedestroy($im);
Un ejemplo lo tengo en esta página:
http://nefertec.com/pruebas/bibianblue.com/index2.html

Ya lo único que me quedaría y sería maravilloso sería crear una imagen que ocupase justo el tamaño que ocupa el texto, pero no sé como averiguar esto.

Saludos y muchas gracias por todo,
KaoS
__________________
Más información sobre mi: Raúl Jiménez
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 15:09.