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<?php
require_once 'library/src/jpgraph.php';
require_once 'library/src/jpgraph_bar.php';
$graph = new Graph(200, 140);
$graph->SetScale( 'textint' );
$graph->SetMargin( 0, 0, 20, 20 );
$barplot = new BarPlot
( array( 100, 200, 150 ) );
$barplot->SetFillColor( '#003399' );
$graph->Add( $barplot );
// header( 'Content-type: image/png' );
$graph->Stroke();
?>
index.html
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<?php
require_once 'library/src/jpgraph.php';
require_once 'library/src/jpgraph_bar.php';
$graph = new Graph(200, 140);
$graph->SetScale( 'textint' );
$graph->SetMargin( 0, 0, 20, 20 );
$barplot = new BarPlot
( array( 100, 200, 150 ) );
$barplot->SetFillColor( '#003399' );
$graph->Add( $barplot );
$handle = $graph->Stroke( _IMG_HANDLER );
imagecopy( $img, $handle, 0, 0, 0, 0, 200, 140 );
header( 'Content-type: image/png' ); ?>
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.