Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137

    Problemi con IMAGEDESTROY()

    Sto creando alcune immagini per visualizzare dei dati con la libreria GD2 di php.Con imagedestroy($img) dovrebbe cancellarmi l'immagine generata ma non la cancella. Infatti quando vado a riaprire la pagina mi fa vedere l'immagine con i dati precedenti.Solo dopo aver aggiornato la pagina su explorer mi visualizza l'immagine con i dati desiderati ....come mai?

  2. #2
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298

    Re: Problemi con IMAGEDESTROY()

    Originariamente inviato da Macgiglio
    Sto creando alcune immagini per visualizzare dei dati con la libreria GD2 di php.Con imagedestroy($img) dovrebbe cancellarmi l'immagine generata ma non la cancella. Infatti quando vado a riaprire la pagina mi fa vedere l'immagine con i dati precedenti.Solo dopo aver aggiornato la pagina su explorer mi visualizza l'immagine con i dati desiderati ....come mai?
    A me sembra solo un problema di cache... dovresti usare un parametro random per evitare la cache del browser... anche se non ho capito come richiami questa immagine per cui potrei sbagliare...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    Sono un po' ignorante su queste cose ..ti allego il codice che ho utilizzato (trovato su di un sito)

    for ( $_gio = 0 ; $_gio <= 37; $_gio ++){
    $valori[$_gio]=$row_Recordset1[$_gio]['voto'];}

    $min = min($valori);
    $max = max($valori);
    $ampiezza = $max - $min;
    $maxX = 625;
    $maxY = 300;
    $img = imagecreatetruecolor($maxX, $maxY);
    $background = imagecolorallocate($img, 0x4B, 0x71, 0x8B);
    imagefill($img, 0, 0, $background);
    $pencolor = imagecolorallocate($img, 0xFF, 0xFF, 0x21);
    $ascissecolor = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
    $bordocolor = imagecolorallocate($img, 0x00, 0x00, 0x00);
    $passoy = ($ampiezza / ($maxY - 70)) ;
    $larghezzabarra = round(34);
    $mezzo = round(270);
    imageline($img, 0, $mezzo, $maxX, $mezzo, $ascissecolor);
    for ($i = 0; $i < $row_giornata['numero'] and $i < 18; $i++) {
    $x1 = $i*$larghezzabarra+10;
    $y1 = round($mezzo - $valori[$i]/($passoy+0.001));
    $x2 = $i*$larghezzabarra + $larghezzabarra;
    $y2 = $mezzo;
    $z = $i+1;
    imagefilledrectangle($img, $x1, $y1, $x2, $y2, $pencolor);
    imagerectangle($img, $x1, $y1, $x2, $y2, $bordocolor);
    $textcolor = imagecolorallocate($img, 0000, 0000, 0000);
    if($valori[$i]==0.0){$tmp = "s.v.";}else{$tmp = $valori[$i];}
    imagestring($img, 1, $x1+5, $y2-20,$tmp, $textcolor);
    imagejpeg($img, "immagini/istogramma.jpg");

    $textcolor = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
    imagestring($img, 3, $x1+8, $y2, "$z", $textcolor);
    imagejpeg($img, "immagini/istogramma.jpg");
    }

    imagedestroy($img);


    Praticamente mi genera un istogramma da alcuni datio che inserisco.
    imagedestroy($img) va bene messa alla fine di questo codice?

  4. #4
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Originariamente inviato da Macgiglio
    Sono un po' ignorante su queste cose ..ti allego il codice che ho utilizzato (trovato su di un sito)

    for ( $_gio = 0 ; $_gio <= 37; $_gio ++){
    $valori[$_gio]=$row_Recordset1[$_gio]['voto'];}

    $min = min($valori);
    $max = max($valori);
    $ampiezza = $max - $min;
    $maxX = 625;
    $maxY = 300;
    $img = imagecreatetruecolor($maxX, $maxY);
    $background = imagecolorallocate($img, 0x4B, 0x71, 0x8B);
    imagefill($img, 0, 0, $background);
    $pencolor = imagecolorallocate($img, 0xFF, 0xFF, 0x21);
    $ascissecolor = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
    $bordocolor = imagecolorallocate($img, 0x00, 0x00, 0x00);
    $passoy = ($ampiezza / ($maxY - 70)) ;
    $larghezzabarra = round(34);
    $mezzo = round(270);
    imageline($img, 0, $mezzo, $maxX, $mezzo, $ascissecolor);
    for ($i = 0; $i < $row_giornata['numero'] and $i < 18; $i++) {
    $x1 = $i*$larghezzabarra+10;
    $y1 = round($mezzo - $valori[$i]/($passoy+0.001));
    $x2 = $i*$larghezzabarra + $larghezzabarra;
    $y2 = $mezzo;
    $z = $i+1;
    imagefilledrectangle($img, $x1, $y1, $x2, $y2, $pencolor);
    imagerectangle($img, $x1, $y1, $x2, $y2, $bordocolor);
    $textcolor = imagecolorallocate($img, 0000, 0000, 0000);
    if($valori[$i]==0.0){$tmp = "s.v.";}else{$tmp = $valori[$i];}
    imagestring($img, 1, $x1+5, $y2-20,$tmp, $textcolor);
    imagejpeg($img, "immagini/istogramma.jpg");

    $textcolor = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
    imagestring($img, 3, $x1+8, $y2, "$z", $textcolor);
    imagejpeg($img, "immagini/istogramma.jpg");
    }

    imagedestroy($img);


    Praticamente mi genera un istogramma da alcuni datio che inserisco.
    imagedestroy($img) va bene messa alla fine di questo codice?
    Beh, no... non per i tuoi scopi almeno... imagedestroy libera la memoria, tu hai salvato in un file... per cui dal lato pratico non ha più effetto sulla immagine che è stata salvata in precedenza...
    Però se ho capito bene il problema (cioè far visualizzare una immagine dinamicamente generata, presumo) sbagli a richiamare così l'immagine... dovresti puntare direttamente al file php, non salvare l'immagine... sempre se ho capito bene...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    ma non esiste un comando per eliminare l'immagine jpeg? in quel modo risolverei il problema..

  6. #6
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Originariamente inviato da Macgiglio
    ma non esiste un comando per eliminare l'immagine jpeg? in quel modo risolverei il problema..
    unlink(); cancella i files, ma secondo me è sbagliato il concetto e unlink() non ti servirà perchè cancellerà l'immagine appena creata e non ti porterà a nulla... dammi retta e cambia il modo di visualizzare l'immagine... se ho azzeccato il problema è l'unica soluzione valida.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    http://www.hostingsolutions.it/guide/gd2.php
    lListogramma l'ho trovato qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    quindi suppongo che tu alla fine in una qualche pagina abbia:

    codice:
    [img]immagine/istogramma.jpg[/img]
    se così fosse, segui il consiglio che ti è stato elargito e randomizza il nome... o meglio basta attaccare un parametro... per esempio

    Codice PHP:
    [img]immagine/istogramma.jpg?t=<?php echo(time());?>[/img]
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    GRANDE!!!!!!! grazie , funziona....Aiutami in un altra cosa: ora sto lavorando in locale , ma se voglio pubblicarlo il sito, come faccio ad attivare i permessi in scrittura?

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    su server windows normalmente hai una cartella specifica in cui puoi scrivere e solo su quella (public o roba del genere), su server linux normalmente puoi settare tu i permessi sulle cartelle... lo puoi fare via client ftp (chmod 777, cerca nella documentazione del tuo client ftp) oppure via script php (chmod etc etc, http://www.php.net/chmod )

    Oppure puoi modificare lo script, prendendo spunto ad esempio dai post (c'è una pillola) per visualizzare immagini provenienti da database... in sostanza si tratta di mandare il giusto header (mime-type image/jpeg) e caricare l'immagine tramite

    codice:
    [img]scriptgeneraimmagine.php[/img]
    Non mi dilungo perché di thread in proposito ce n'è già a bizzeffe.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.