Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Immagini dinamiche

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61

    Immagini dinamiche

    Ciao a tutti,

    il mio problema è abbastanza semplice: dovrei creare immagini in modo dinamico. In particolare vorrei creare un'immagine composta da 2 cerchi concentrici i quali colori in rgb vengono recuperati a seconda del contenuto di un record nel database.

    Cercando negli articoli di php.html.it ho trovato questa guida che mi pareva fare proprio al caso mio, viste funzioni come imagefillrectangle (solo io dovrei usare dei cerchi) e imagecolorallocate.

    Purtroppo l'ultima parte di codice mi si blocca nell'istruzione

    Codice PHP:
    header("Content-type: image/png"); 
    con l'errore Cannot modify header information - headers already sent by e quindi non riesco a controllarne il risultato :-(

    Considerate che questa immagine creata andrebbe poi usata svariate volte nella pagina modificata ancora con la funzione imagefttext.

    Qualcuno può aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ci scommetto che hai spazi, righe vuote o addirittura tag html o altre schifezze nel codice o nella pagina con quello script (anzi, prima di quello script). Tutto ciò è male. La tua pagina dovrà essere semplicemente:
    codice:
    <?php
      if( GDVersion() ){
      header("Content-type: image/png");
    
      if( GDVersion() == 1 ){
        $im = @imagecreate(300, 255) or die("Cannot Initialize new GD image stream");
    
        $black = imagecolorallocate($im, 0, 0, 0);
        $white = imagecolorallocate($im, 255, 255, 255);
        $red = imagecolorallocate($im, 255, 0, 0);
        $green = imagecolorallocate($im, 0, 255, 0);
        $blue = imagecolorallocate($im, 0, 0, 255);
    
        imagefilledrectangle($im, 0, 0, 51, 300, $white);
        imagefilledrectangle($im, 51, 0, 102, 300, $red);
        imagefilledrectangle($im, 102, 0, 153, 300, $green);
        imagefilledrectangle($im, 153, 0, 204, 300, $blue);
        imagefilledrectangle($im, 204, 0, 255, 300, $black);
      }
      else{
        $im = @imagecreatetruecolor(300, 255) or die("Cannot Initialize new GD image stream");
    
        for( $i = 0; $i < 256; $i++ ){
          $col = imagecolorallocate($im, 255, $i, $i);
          imagefilledrectangle($im, 0, $i, 100, $i+1, $col);
        }
        for( $i = 255; $i > -1; $i-- ){
          $col = imagecolorallocate($im, $i, 255, $i);
          imagefilledrectangle($im, 100, 255-$i, 200, 256-$i, $col);
        }
        for( $i = 0; $i < 256; $i++ ){
          $col = imagecolorallocate($im, $i, $i, 255);
          imagefilledrectangle($im, 200, $i, 300, $i+1, $col);
        }
      }
    
      $grey = imagecolorallocate($im, 100, 100, 100);
      imageString($im, 5, 120, 100, 'GD ' . GDVersion(), $grey);
    
      imagepng($im);
      imagedestroy($im);
    }
    else{
      echo 'Errore, libreria GD non disponibile su questo sistema!';
    }
    ?>
    Nient'altro.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61
    Un'errore molto da niubbo vero? :-(

    Ora però mi sorge il dettaglio implementativo.. Come creo due cerchi concentrici? Quanto ai colori che vengono dati in input alle funzioni.. posso passargli tranquillamente l'esadecimale o c'è da specificarlo?

    edit: inoltre qui è stato usato appunto un header, mentre io devo creare l'immagine e utilizzarla varie volte all'interno della pagina, inserendola ad esempio con i tag img... come devo modificare il codice?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    leggi la documentazione sulle GD perché sono tutte funzioni documentate: non c'è niente di non pronto in quel che chiedi.

    http://it.php.net/gd
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61
    Ci sono riuscito!

    Evviva!

    Grazie dei consigli ;-) Mi resta però un ultimo dubbio... Come ti ho detto, una volta generata questa immagine, la dovrei utilizzare varie volte all'interno di una pagina php modificandola volta volta con la funzione imagefttext per riempirla con del testo sempre diverso... Il codice che ho creato invece rimanda con l'header direttamente all'immagine, mentre io desidererei salvarla in qualche modo, anche solo momentaneamente in una variabile, per inserirla nel tag img... Come posso fare???

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    è lecito:

    codice:
    [img]script_genera_immagine.php?eventuali_parametri=valori[/img]
    Come è pure lecito fare l'output su file (e quindi salvare in jpg,png o formato di tuo gradimento), quindi utilizzare un tag img con src "più familiare"
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61
    Messa così mi vengono dubbi su entrambi i metodi:

    Il primo mi costringe a richiamare la pagina php che genera l'immagine ogni volta che io abbia bisogno di quest'ultima, sprecando quindi molte risorse, visto che l'immagine sarebbe sostanzialmente la stessa.

    Con il secondo metodo ho invece il timore di riempire lo spazio nel server di immagini sempre uguali (cioè ogni volta che viene visitata la pagina viene generata una nuova immagine, anche se la pagina era la stessa)!

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.