Foros del Web » Programando para Internet » PHP »

Necesito ayuda generando un grafico

Estas en el tema de Necesito ayuda generando un grafico en el foro de PHP en Foros del Web. Hola. Estoy haciendo una función que apartir de los valores de dos vectores me muestra unos graficos. Estos valores son almacenados previamente en los vectores ...
  #1 (permalink)  
Antiguo 26/02/2005, 04:00
 
Fecha de Ingreso: julio-2003
Ubicación: Benilloba/Valencia
Mensajes: 69
Antigüedad: 20 años, 8 meses
Puntos: 0
Necesito ayuda generando un grafico

Hola. Estoy haciendo una función que apartir de los valores de dos vectores me muestra unos graficos. Estos valores son almacenados previamente en los vectores atraves de unas consultas en una BD.

Si hago un .php que acaba con el:

header("Content-Type: image/png");
ImagePng($im);
ImageDestroy($im);

Y lo llamo por el navegador la cosa funciona a las mil maravillas ya que antes del codigo <? Php ?> no hay ninguna etiqueta HTML y se puede introducir los header.

Ahora viene el problema, lo que quiero es llamar a este codigo desde otra pagina, donde hay unos informes mostrados con tablas y hay un recuadro donde va justo el grafico generado con el otro .php. No puedo introducir el codigo este dentro de esta pagina porque antes hay etiquetas HTML y no puedo introducir el codigo con el header.

Otra solucion que he visto que tampoco me vale es utilizar las etiquetas <img src=”miarchivo.php” /> porque no puedo pasarle dos vectores dinamicos por url, ya que unas veces seran mas grandes y otras veces mas pequeños, igual con 20 terminos cada uno.

Y la tercera solucion que pienso que es la buena pero no se como hacer es la siguiente. Pongo todo el codigo que genera los graficos en un archivo .php donde tengo varias funciones que voy usando. A la funcion la llamo y le paso como parámetros los dos vectores, entre otros como el color, tamaño, etc. Pues se me ha ocurrido que la funcion esta genere el grafico y lo guarde como .png (o .jpg, me da lo mismo) y después la pagina que lo tiene que mostrar lo cargue como una imagen. Donde esta pagina primero llama a la funcion pasandole los parámetros y después tiene unas etiquetas
<img src=”imagen.png” />
donde muestra la imagen previamente generada con la funcion.

Pues el problema es que no se como guardar la imagen png en un archivo. Nunca he trabajado con archivos en php y no se si habra que hacer algo especial.

Alguien sabe que es lo que tengo que hacer para que la imagen generada se guarde en un archivo .png??

Muchas gracias de antemano!!
  #2 (permalink)  
Antiguo 26/02/2005, 10:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

¿Has mirado en el manual la funcion imagepng() (www.php.net/imagepng)? Fijate en el segundo parametro.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 27/02/2005, 06:29
 
Fecha de Ingreso: julio-2003
Ubicación: Benilloba/Valencia
Mensajes: 69
Antigüedad: 20 años, 8 meses
Puntos: 0
Gracias josemi, he hecho lo del segundo parametro tambien, pero no me crea el archivo imagen.

Para ello, tengo que poner algo mas antes? es que nunca he trabajado con ficheros.
  #4 (permalink)  
Antiguo 28/02/2005, 03:01
 
Fecha de Ingreso: julio-2003
Ubicación: Benilloba/Valencia
Mensajes: 69
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola de nuevo! sigo sin aclararme para que me guarde el archivo .png y despues mostrarlo desde la pagina. Un resumen del codigo mio es este, donde aqui muestro una imagen de prueba y la quiero guardar en el server para despues visualizarla desde el .php desde donde lo llamo.

Código PHP:
<?
    $width 
380;  // anchura de la imagen
    
$height 400;  // altura de la imagen
    
$left_margin 5// margen derecho, seguramente no lo utilice
    
$right_margin0// margen inzquierdo
    
$use_ttf 1;
    
$font 'C:/WINDOWS/Fonts/Arial.ttf';
    
$title_size8// point
    
$main_size7// tamaño de letra
    
$small_size12// point
    
$text_indent 10// posicion para el texto desde la derecha
    
    
$x1 $left_margin;  // donde dibujar la primera barra
    
    // Genero el cuadro donde va la imagen
    
$im imagecreate($width,$height);   
         
    
// Fijo los colores
    
$white=ImageColorAllocate($im,255,255,255);   
    
$black=ImageColorAllocate($im,0,0,0);   
    
$blue=ImageColorAllocate($im,0,64,128);   
    
$red ImageColorAllocate($im,198,49,48); 
    
$green ImageColorAllocate($im,0,127,48);
    
$color1 ImageColorAllocate($im,102,102,102);
    
$color2 ImageColorAllocate($im,56,130,192);
    
    
$text_color $color1;
    
$percent_color $black;
    
$bg_color $white;
    
$line_color $black;
    
$bar_color $color2;
    
$number_color $red;
    
    
// El fondo de la imagen
    
ImageFilledRectangle($im,0,0,$width-1,$height-1,$bg_color);
    
    
ImageFilledRectangle($im,30,30,150,200,$red);
    
    
// Marco de la imagen
    
ImageRectangle($im,0,0,$width-1,$height-1,$line_color);

    
// Muestro la imagen
    
header("Content-Type: image/png");
    
//header("Content-Disposition: inline; filename=test.png");

    //$file = 'test.png';
    
ImagePng($im);   
    
    
// Destruyo imagen
    
ImageDestroy($im);
    
?>
Asi como esta me muestra la imagen, pero lo que quiero es que la guarde para visualizarla despues.

Y si cambio el final del codigo por esto otro
Código PHP:
<?
$file 
'test.png';
ImagePng($im,$file);

// Destruyo imagen
ImageDestroy($im);
?>
Me da este error:
La imagen http://portatil/pr/prova01.php no puede mostrarse porque contiene errores.

Y la verdad es que ya no se que mas hacer. Gracias!!!!
  #5 (permalink)  
Antiguo 28/02/2005, 04:33
 
Fecha de Ingreso: julio-2003
Ubicación: Benilloba/Valencia
Mensajes: 69
Antigüedad: 20 años, 8 meses
Puntos: 0
Bueno, pues ya esta el problema solucionado y funciona correctamente.

Gracias!!!
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:18.