GTA-Expert Forum: [PHP|GUIDA]Creare Immagini Dinamiche in PHP - GTA-Expert Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[PHP|GUIDA]Creare Immagini Dinamiche in PHP

#1 L'utente è offline   Luigi96 

  • Delinquente
  • Gruppo: Utenti
  • Messaggi: 494
  • Iscritto il: 23/04/09
  • Provenienza:Catania
  • GTA Preferito:GTA: San Andreas

Inviato il 09 novembre 2011 - 18:31

So che non c'entra nulla su questo forum ma lo posto lo stesso lol

Creare Immagini Dinamiche in PHP

Come creare delle immagini con contenuto variabile tramite PHP


Dopo le varie richieste ho deciso di creare una guida su come creare delle immagini dinamiche in PHP.

Cosa sono le immagini dinamiche? Sono delle immagini che contengono testi/o che possono variare a seconda di come viene preimpostato.

Facciamo un esempio, in questa immagine il testo con il numero dei clic varia, ma l'indirizzo dell'immagine non cambia. Questo succede perchè il testo è stato aggiunto tramite PHP e non nella creazione dell'immagine. Potete notare la differenza (Senza Script | Con Script)

Adesso passiamo alla parte pratica, come si crea una semplice immagine dinamica?

Questo è il codice per un immagine base:
<? header("Content-type: image/png");
   $img = imagecreatefrompng('download.png');
   imagealphablending($img, true);
   imagesavealpha($img, true);
   imagepng($img);
?>


Vediamo in cosa consistono queste funzioni:
  • header("Content-type: image/png") // Comunica al server di far trattare la pagina come un immagine, e non come una pagina web.
  • $img = imagecreatefrompng('download.png') // Inserisce l'immagine download.png come sfondo, cioe la base (Si può creare anche senza questa funzione, utilizzando rettangoli, cerchi e quadrati.)
  • imagealphablending($img, true) & imagesavealpha($img, true) // Queste due funzioni permettono di visualizzare le trasparenze dell'immagine download.png (Senza esse visualizzerete lo sfondo nero, ove ci fosse trasparenza)
  • imagepng($img) // Mostra l'immagine creata con tutte le sue impostazioni

Bene, ma in questo modo abbiamo creato una semplice immagine png, che vantaggi ne possiamo trarre da questo sistema?

Come aggiungiamo del testo variabile sopra l'immagine?

Abbiamo visto come creare un immagine tramite il PHP, adesso arriva la parte più importante e utile, come aggiungere del testo variabile sopra l'immagine.

A questo ci viene incontro la funzione imagettftext, vediamo come usarla:

Procuriamoci il file TTF di qualche font (potete scaricarlo o estrarlo dalla cartella Font di windows), inseriamolo nella cartella dell'immagine e per comodità inseriamolo in una variabile nello script. In questo modo: $font = "font.ttf";

Creiamo una variabile con il colore, in questo modo: $bianco = imagecolorallocate($img,255,255,255); (Inseriamo i valori RGB del colore)

Una volta fatto questo possiamo utilizzare la funzione imagettftext, imagettftext ($img , 10(Grandezza), 0(Angolazione), 10(Posizione X), $y(Posizione Y), $bianco(Variabile Colore), $font(Variabile Font), "Testo"(Stringa/Variabile con testo da inserire));

In questo modo possiamo inserire del testo sopra l'immagine, per rendere il testo variabile non vi resta che sostituire "testo" con una variabile creata da voi, e dovrete essere voi a scegliere quando e come cambiare, ovviamente questo non è un corso di PHP, la guida è pertanto indirizzata a persone con almeno conoscenze base sul PHP.

Per concludere ecco un piccolo esempio che potrà chiarirvi ulteriormente le idee in caso di dubbi:


<?
    $testo = $_GET['testo']; // Crea la variabile $testo, il contenuto verrà preso tramite il metodo GET (Alla fine del link ?testo=XXX)

    header("Content-type: image/png"); // Comunica al Browser di mostrare la pagina come immagine, e non come pagina PHP
    $img = imagecreatefrompng('download.png');  // Inserisce un immagine come sfondo
    $bianco = imagecolorallocate($img,255,255,255); // Crea il colore bianco
    imagealphablending($img, true); // Permette di visualizzare le trasparenze dell'immagine
    imagesavealpha($img, true);
    imagettftext($img,6,0,10,40,$bianco,"font.ttf",$testo);
    imagepng($img); // Mostra l'immagine creata con tutte le funzioni
  
?>


In questo modo si creerà un immagine e sarà visualizzato il testo che invierete voi aggiungendo ?testo=vostrotesto alla fine del link.

Troverete l'archivio .rar allegato. Grazie per aver letto :D

Download Archivio: http://www.mediafire...zhsgokqdf2dc3bp

Messaggio modificato da Luigi96 il 10 novembre 2011 - 18:24

Immagine Postata
0

#2 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 09 novembre 2011 - 19:03

Bella Immagine Postata
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#3 L'utente è offline   Velfest 

  • Sicario
  • Gruppo: Banned
  • Messaggi: 1534
  • Iscritto il: 22/04/07
  • Provenienza:Roma
  • GTA Preferito:Sconosciuto

Inviato il 09 novembre 2011 - 19:49

Visualizza MessaggiLuigi96, il 09 November 2011 - 18:31 ha detto:

Troverete l'archivio .rar allegato. Se vi sono stato d'aiuto cliccate sul pulsante mi piace qui sotto e grazie per aver letto :D


ok ... <_<
Ctrl+c Cterl+V FTW
Immagine Postata
0

#4 L'utente è offline   Luigi96 

  • Delinquente
  • Gruppo: Utenti
  • Messaggi: 494
  • Iscritto il: 23/04/09
  • Provenienza:Catania
  • GTA Preferito:GTA: San Andreas

Inviato il 09 novembre 2011 - 20:35

Ho aggiornato qualche secondo dopo il tuo messaggio, ho fatto copia incolla perchè l'ho postata su un altro forum prima di postarla qui D:, copiare guide non è da me asd
Immagine Postata
0

#5 L'utente è offline   Eddie_Scofield 

  • Vandalo
  • Gruppo: Utenti
  • Messaggi: 52
  • Iscritto il: 18/09/11
  • GTA Preferito:GTA: San Andreas

Inviato il 09 novembre 2011 - 23:54

Bella Guida, Complimenti Luigi Immagine Postata
Bee the change you want see in the world... http://www.legacyproject.it/
0

#6 L'utente è offline   Pippo 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 4940
  • Iscritto il: 09/08/09
  • GTA Preferito:GTA: San Andreas

Inviato il 10 novembre 2011 - 00:33

Figata, non lo sapevo che si potesse fare una cosa del genere :m:
Posted Image
0

#7 L'utente è offline   Fabio206 

  • Padrino
  • Gruppo: Admin
  • Messaggi: 72430
  • Iscritto il: 05/12/05
  • GTA Preferito:GTA III

Inviato il 10 novembre 2011 - 01:00

Il mondo della programmazione è più vasto di quanto tu possa pensare Pippo :rotfl:
P.S. Avevo spostato io il topic qui, mi sembrava più appropriata come sezione ;)
0

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi