Creare grafici dinamici

8 contenuti / 0 new
Ultimo contenuto
Creare grafici dinamici

Ciao a tutti.
Sono nuovo del forum e di Drupal quindi perdonate se scriverò qualche stupidaggine.
Vorrei creare un pagina del sito che contenga grafici dinamici (torte, istogrammi, ecc.) utilizzando dati prelevati da un db.
Ho pensato di utilizzare le librerie GD e GD2 correttamente installate sulla mia versione di PHP (controllato su phpinfo()), ma quando tento di far interpretare il seguente codice di test delle funzionalità grafiche

<?php
header
("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
?>

ottengo cme risultato:
L'immagine “http://www.acselspa.it/node/146” non può essere visualizzata poiché contiene degli errori.

Qualcuno sa indicarmi quale potrebbe essere il prblema.
Grazie a tutti.

Abilita gli errori di PHP e vedi che errore ti restituisce.

Ciao
Marco
--
My blog
Working at @agavee

Grazie, ma non so come fare per attivare la visualizzazione degli errori php. E' un'impostazione di Drupal o devo rivolgermi al gestore dell'hosting?
Ciao.

solitamente si impostano tramite .htaccess o direttive di php.ini, in ogni caso chiedi al tuo hoster, se sono già attive prova a creare un pagina php classica per visualizzare le info e solo quando da li funziona porta il tutto in Drupal, IMHO è più semplice procedere al debugging in questo modo.

Ciao
Marco
--
My blog
Working at @agavee

Grazie per il consiglio Mavino che ho seguito.
Creando una nuova pagina php al di fuori di Drupal, l'immagina generata dal seguente codice è visulaizzata correttamente:
$im = @ ImageCreate ( 150, 100)
or die ( "Cannot create a new GD image.");
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate ($im, 233, 14, 91);
ImageString ($im, 1, 5, 5, "A Simple Text String", $text_color );
header ("Content-type: image/png");
ImagePng ($im);

Mentre se riporto in codice all'interno di un nodo Drupal continua a darmi il messaggio:
L'immagine “http://www.acselspa.it/node/146” non può essere visualizzata poiché contiene degli errori.
Mistero.
Grazie, ciao e a presto.

Aggiungo un elemento. Dopo la prima visualizzazione corretta nella pagina php l'immagine me la visualizza così:

�PNG ��� IHDR�������d���^�[����PLTE����[�˝����pIDAT8�c` ����A�ρ&��� 1����O%ݡb� ��\6p�)�u���kP o9�٦�©�{܍��㥀���"�j&��6^�`��Q0 � �f)�hLH����IEND�B`�

Cosa vorrà dire?
Grazie ancora.

Hai il caching abilitato?
IMHO stai sbagliando approccio, usando scrivendo il codice del page credo che e chiamate vengano messe in cache, la seconda volta che richiedi l'immagine ti restituisce a cache con gli header di Drupal (test9 e quindi vedi il testo e non l'immagine. La soluzione pulita è di creare un modulo per fare quello che chiedi e non mettere codice PHP nella pagina in quel modo.

JM2C

Ciao
Marco
--
My blog
Working at @agavee

@mavimo ciao scusa se il post è vecchiotto (l'ho trovato con google) mi trovavo a scrivere una funzione di Drupal 6 del tipo sopra e volevo sapere, da te che sei esperto, perchè l'immagine non viene inserita nel contesto del sito mentre viene visualizzata in una pagina bianca:

function mu_function_graphic() {
$page_content = t('Statistiche dettagliate dei dati archivio del sito:');
$im = @ ImageCreate ( 150, 100) or die ( "Cannot create a new GD image.");
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate ($im, 233, 14, 91);
ImageString ($im, 1, 5, 5, "A Simple Text String", $text_color );
$page_content .= ImagePng ($im);
return $page_content;
}

Tra l'altro il titolo "Statistiche dettagliate..." non viene proprio visualizzato!

Eppure qui: http://arca24.ch/candidati/statistiche con la libreria pieGraph.php non è stato difficile creare la pagina! Ma adesso ho bisogno di uno script del tipo sopra come integrarlo nelle pagine di drupal? Ho provato anche con print theme('page', $page_content); ma nulla, sempre una pagina bianca con l'immagine creata e non il sito che contiene l'immagine.

Grazie se puoi rispondermi grazie mille