Foros del Web » Programando para Internet » PHP »

PH`P+GD - Crear Imagen desde Texto con salto de linea

Estas en el tema de PH`P+GD - Crear Imagen desde Texto con salto de linea en el foro de PHP en Foros del Web. Hola a todos, Tengo el siguiente codigo para crear imagenes de texto pasandole un texto la cosa empezo en el foro de css . http://www.forosdelweb.com/f53/poner...9/#post2197696 ...
  #1 (permalink)  
Antiguo 26/11/2007, 05:06
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
PH`P+GD - Crear Imagen desde Texto con salto de linea

Hola a todos,
Tengo el siguiente codigo para crear imagenes de texto pasandole un texto
la cosa empezo en el foro de css . http://www.forosdelweb.com/f53/poner...9/#post2197696
Código PHP:
<?php 
header
("Content-type: image/gif"); 
//imagecreatefromgif -- Crear una nova imatge a partir de un arxiu o URL
//http://es.php.net/manual/es/function.imagecreatefromgif.php
$img1 imagecreatefromgif("home.gif"); 
//Tipus de Letra
$fuente "daniela.ttf"
//imagecolorallocate -- Reserva un color per una imatge
//http://es.php.net/manual/es/function.imagecolorallocate.php
$color imagecolorallocate($img1,255,255,255); 
//Texte q convertirem amb Imatge
$paraula "Manteniment fresc";
//imagettftext -- Escriu un texte sobre la imatge utilitzan les fonts TrueType
//http://es.php.net/manual/es/function.imagettftext.php
imagettftext($img1,13,90,15,80,$color,$fuente$paraula); 
//imagegif -- Produir la sortida d'una imatge al navegador o a un arxiu
//http://es.php.net/manual/es/function.imagegif.php
imagegif($img1); 
//imagedestroy -- Destrueix una imatge
//http://es.php.net/manual/es/function.imagedestroy.php
imagedestroy($img1); 
?>
mi duda es q como puedo hacer q cuando el texto se componga de dos palabras haya un salto de linea y se cree la imagen en dos lineas?


Saludos y gracias de antemano...
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #2 (permalink)  
Antiguo 26/11/2007, 05:19
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 19 años, 2 meses
Puntos: 19
Re: PH`P+GD - Crear Imagen desde Texto con salto de linea

¿probaste de poner /r/n o \r\n en la cadena?

Por otro lado, podrías hacer cada palabra por separado y juntar las imagenes con imagecopymerge.

Un saludo
  #3 (permalink)  
Antiguo 26/11/2007, 06:20
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Re: PH`P+GD - Crear Imagen desde Texto con salto de linea

Hola, gracias por la respuesta, use la opcion de imagecopymerge, y el codigo a quedado asi:
Código PHP:
<?php 
header
("Content-type: image/gif"); 
//imagecreatefromgif -- Crear una nova imatge a partir de un arxiu o URL
//http://es.php.net/manual/es/function.imagecreatefromgif.php
$img1 imagecreatefromgif("home.gif"); 
//Tipus de Letra
$fuente "daniela.ttf"
//imagecolorallocate -- Reserva un color per una imatge
//http://es.php.net/manual/es/function.imagecolorallocate.php
$color imagecolorallocate($img1,255,255,255); 
//Texte q convertirem amb Imatge
$paraula "Manteniment Fresc";
$arrayparaula explode(' ',$paraula);
//imagettftext -- Escriu un texte sobre la imatge utilitzan les fonts TrueType
//http://es.php.net/manual/es/function.imagettftext.php

if($arrayparaula[1]!=''){
    
$titol1=imagettftext($img1,13,90,15,80,$color,$fuente$arrayparaula[0]); 
    
$titol2=imagettftext($img1,13,90,28,60,$color,$fuente$arrayparaula[1]); 
    
imagecopymerge($titol1,$titol2,10000203050);
}else{
    
imagettftext($img1,13,90,15,80,$color,$fuente$arrayparaula[0]); 
}
//imagegif -- Produir la sortida d'una imatge al navegador o a un arxiu
//http://es.php.net/manual/es/function.imagegif.php
imagegif($img1); 
//imagedestroy -- Destrueix una imatge
//http://es.php.net/manual/es/function.imagedestroy.php
imagedestroy($titol1);
imagedestroy($titol2);
imagedestroy($img1); 
?>
ahora la base ya esta hecha pero me gustaria perfeccionarlo un poco, a ver, en las linias
Código PHP:
$titol1=imagettftext($img1,13,90,15,80,$color,$fuente$arrayparaula[0]); 
$titol2=imagettftext($img1,13,90,28,60,$color,$fuente$arrayparaula[1]); 
aqui pongo la distancia de las palabras manualmente, ya sea la vertical como la horizontal, como todas las palabras q quiero insertar noser la medida, ya q proceden de una consulta SQL y es apra dibujar la cabecera de una tabla, se podria poner de alguna manera para q siempre me saliera centrado a la imagen q tiene de fondo?
es posible hacer lo q quiero hacer?
es posible transformar este codigo en una funcion para q cuando le pase un parametro me retorne la imagen?
la cabecera de la tabla se crea de la siguiente manera:
Código PHP:
<table width="98%" border="1">
<tr>
    <td class="capcelera">DNI</td>
    <td class="capcelera">Nombre</td>
    <?
    $str_seccio  
"SELECT id_seccio, nom_seccio FROM seccio WHERE hores=1 ORDER BY nom_seccio";
    
$sql_seccio  mysql_query($str_seccio) or die("Error SQL Cabecera Secciones: ".mysql_error());
    
$nreg_seccio mysql_num_rows($sql_seccio);
    if(
$nreg_seccio!=0){
        while(
$res_seccio mysql_fetch_row($sql_seccio)){
        
?>
        <td class="capceleravertical" height="20px"><?=htmlentities($res_seccio[1]);?></td>    
        <?
        
}    
    }
    
?>
la idea es q esta linia
<td class="capceleravertical" height="20px"><?=htmlentities($res_seccio[1]);?></td>
cuando la dibuje me salga ya el titulo en vertical... es factible?


Saludos y muchas gracias de antemano!
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 26/11/2007 a las 08:50
  #4 (permalink)  
Antiguo 27/11/2007, 02:39
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Re: PH`P+GD - Crear Imagen desde Texto con salto de linea

Solucion....
1era pagina donde hay la taula con las cabeceras en vertical
Código HTML:
<td title="TUTITULO"><img src="paginatitulos.php?var=Total Horas"/></td> 
2unda pagina donde hay el codigo para crear el titulo en vertical - paginastitulos.php
Código PHP:
<?php 
header
("Content-type: image/gif"); 
//Texto q convertiremos en imagen
$var $_GET['var'];
//http://es.php.net/manual/es/function.imagecreatefromgif.php
$img1 imagecreatefromgif("home.gif"); 
//Tipus de Lletra
$fuente "comic.ttf";
//http://es.php.net/manual/es/function.imagecolorallocate.php
$color imagecolorallocate($img1,255,255,255); 
//http://es.php.net/manual/es/function.imagettftext.php
imagettftext($img1,11,90,15,85,$color,$fuente$paraula); 
//http://es.php.net/manual/es/function.imagegif.php
imagegif($img1); 
//http://es.php.net/manual/es/function.imagedestroy.php
imagedestroy($img1);
donde home.gif es un pequeño recuadro transparante hecho en photoshop donde insertamos el grafico.

Suerte y Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #5 (permalink)  
Antiguo 27/11/2007, 02:43
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 19 años, 2 meses
Puntos: 19
Re: PH`P+GD - Crear Imagen desde Texto con salto de linea

¿Y cómo haces el salto de línea?
  #6 (permalink)  
Antiguo 27/11/2007, 02:48
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Re: PH`P+GD - Crear Imagen desde Texto con salto de linea

Lo hice de la manera mas sencilla, como ser q maximo tendra dos palabras hice un simple Explode y utilice el imagecopymerge, pero al final como no sabia como centrar correctamente la palabra lo deje en una sola linia ya q no dispongo de mucho mas tiempo para seguir mirandome este tema... asi q si alguno sabe o encuentra la solucion a mi dilema estaria bastante agradecido si lo comparte con nosotros...
Código PHP:
<?php 
header
("Content-type: image/gif"); 
//Texte q convertirem amb Imatge
$var $_GET['var'];
$arrayvar explode(' ',$var);
//http://es.php.net/manual/es/function.imagecreatefromgif.php
$img1 imagecreatefromgif("home.gif"); 
//Tipus de Lletra
$fuente "comic.ttf";
//http://es.php.net/manual/es/function.imagecolorallocate.php
$color imagecolorallocate($img1,255,255,255); 
//http://es.php.net/manual/es/function.imagettftext.php

if($arrayvar[1]!=''){
    
$titol1=imagettftext($img1,13,90,15,80,$color,$fuente$arrayvar[0]); 
    
$titol2=imagettftext($img1,13,90,28,60,$color,$fuente$arrayvar[1]); 
//http://es2.php.net/manual/es/function.imagecopymerge.php
    
imagecopymerge($titol1,$titol2,10000203050);
}else{
    
imagettftext($img1,11,90,15,85,$color,$fuente$var); 
}

//http://es.php.net/manual/es/function.imagegif.php
imagegif($img1); 
//http://es.php.net/manual/es/function.imagedestroy.php
imagedestroy($titol1);
imagedestroy($titol2);
imagedestroy($img1); 
?>
esto es la base para poder realizar cabeceras en vertical, q esa fue mi idea desde q empece el post en CSS. Apartir de aqui q cada uno q lo use algun dia q lo mejore y lo adapte a su mejor gusto...

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 27/11/2007 a las 02:58
  #7 (permalink)  
Antiguo 29/09/2008, 09:06
Avatar de Dr_T  
Fecha de Ingreso: junio-2004
Ubicación: Anglès, Catalunya
Mensajes: 20
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: PH`P+GD - Crear Imagen desde Texto con salto de linea

Hola Sergi.

Dale un vistazo a este enlace. A mi me ha servido para poner un texto en varias líneas y además, alinearlo a la derecha.

www.washeebo.com/sargento/phpgd/?doc=7

Espero que te sirva.

Saludos!

PD: No me deja poner enlaces directos por ser "novato"...
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 12:50.