Spesso può rivelarsi utile creare una immagine in memoria invece che disegnarla direttamente sullo schermo grafico.
Poi, una volta creata, sarà possibile richiamarla attraverso il suo indirizzo di memoria.
Questo procedimento, oltre a velocizzare il disegno delle immagini, rende possibile vari effetti grafici che possono migliorare l’efficacia e la qualità dei nostri programmi.
Possiamo immaginare ciascuna immagine come una tela contenuta all’interno di una cornice avente delle specifiche dimensioni (larghezza e altezza); la tela potrà essere colorata o trasparente.
Come creare una immagine
La funzione che ci permette di creare un’immagine è imagecreate disponibile in due versioni:
screen 19, 32, 1 ''dimensiona due variabili di tipo puntatore ''per gli indirizzi di memoria dim immagine1 as any ptr dim immagine2 as any ptr ''I versione con i seguenti argomenti: ''- larghezza ''- altezza ''- colore dello sfondo immagine1 = imagecreate(200, 200, rgb(255,0,0)) if immagine1 = 0 then print "Creazione dell'immagine 1 non riuscita!" sleep else ''disegna un cerchio verde al centro circle immagine1, (100, 100), 50, rgb(0,255,0) ''inserisce l'immagine all'interno ''della finestra grafica put(150, 150), immagine1 ''distrugge l'immagine per liberare la memoria imagedestroy immagine1 end if ''II versione con l'aggiunta di un quarto argomento: ''- profondità di colore immagine2 =imagecreate(200, 200, rgb(0,255,0), 32) if immagine2 = 0 then print "Creazione dell'immagine 2 non riuscita!" sleep else ''disegna un cerchio rosso al centro circle immagine2, (100, 100), 50, rgb(255,0,0) ''inserisce l'immagine all'interno ''della finestra grafica put(300, 300), immagine2 ''distrugge l'immagine per liberare la memoria imagedestroy immagine2 end if sleep
Note sulla istruzione imagecreate
- L’istruzione va utilizzata soltanto dopo aver definito la modalità grafica: e quindi sia la risoluzione dello schermo che la risoluzione grafica.
- Se il colore dello sfondo non viene specificato, il valore predefinito sarà trasparente e quindi in pratica sarà visibile il colore di sfondo della finestra grafica.
- Se l’istruzione dovesse fallire, viene restituito il valore null (0), altrimenti viene restituito l’indirizzo di memoria dell’immagine.
Per fare le cose per bene, occorre anche ricordarsi di distruggere le immagini create in modo tale da liberare la memoria. Per farlo si utilizza l’istruzione imagedestroy.
Bene. Per oggi possiamo fermarci qui. Nel prossimo articolo impareremo a salvare e caricare le immagini.

