Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/06/2013, 07:45
Avatar de Karmac
Karmac
 
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: CodeIgniter y JpGraph

Mira el ejemplo que hice, al final no me ha hecho falta ni colocar el header ni darle tantas vueltas a la imagen como en el ejemplo de arriba.

graph.php
Código PHP:
Ver original
  1. <?php
  2. require_once 'library/src/jpgraph.php';
  3. require_once 'library/src/jpgraph_bar.php';
  4.  
  5. $graph = new Graph(200, 140);
  6.  
  7. $graph->SetScale( 'textint' );
  8. $graph->SetMargin( 0, 0, 20, 20 );
  9.  
  10. $barplot = new BarPlot( array( 100, 200, 150 ) );
  11.  
  12. $barplot->SetFillColor( '#003399' );
  13.  
  14. $graph->Add( $barplot );
  15.  
  16. // header( 'Content-type: image/png' );
  17. $graph->Stroke();
  18. ?>

index.html
Código HTML:
Ver original
  1. <img src="graph.php" alt="Graph">

He estado leyendo la documentación y pone que si al método Graph::Stroke no le pasas ningún argumento no guardará la imagen y la mostrará en el navegador.

El modo largo es el siguiente, hace lo mismo que el código de arriba pero con la diferencia de que podrías usar la imagen en un PDF o algo.

img.php
Código PHP:
Ver original
  1. <?php
  2. require_once 'library/src/jpgraph.php';
  3. require_once 'library/src/jpgraph_bar.php';
  4.  
  5. $graph = new Graph(200, 140);
  6.  
  7. $graph->SetScale( 'textint' );
  8. $graph->SetMargin( 0, 0, 20, 20 );
  9.  
  10. $barplot = new BarPlot( array( 100, 200, 150 ) );
  11.  
  12. $barplot->SetFillColor( '#003399' );
  13.  
  14. $graph->Add( $barplot );
  15.  
  16. $handle = $graph->Stroke( _IMG_HANDLER );
  17.  
  18. $img = imagecreatetruecolor( 200, 140 );
  19. imagecopy( $img, $handle, 0, 0, 0, 0, 200, 140 );
  20.  
  21. header( 'Content-type: image/png' );
  22. imagepng( $img );
  23. ?>

No he conseguido que la imagen se guarde y se muestre a la vez, aunque supongo que invocando Graph::Stroke dos veces (una con una ruta y la otra con el parámetro vacío) se podrá.

Espero que te funcione así. Saludos.