Ciao
Questo script richiama i dati dal db (delle firme o messaggi) e li stampa su un'immagine con le librerie gd2:
Codice PHP:
$db = mysql_connect('localhost', 'root', '') or die(mysql_error());
@mysql_select_db('login4', $db) or die(mysql_error());
$query = "SELECT * FROM firme";
$result = mysql_query($query);
$tot=mysql_num_rows($result);
$ima = imagecreatefromjpeg("gia4.jpg");//prendo l'immagine
$textcol = imagecolorallocate($ima,0,0,0);//Prendo il colore nero per il testo
list($larg, $altez, $uno, $due) = getimagesize("gia4.jpg"); //Metto nelle variabili $larg e $altez la larghezza e l'altezza dell'immagine con l'array getimagesize()
$destra=10;
If ($tot>9) {$destra=100;}
$gra=20;
while($rot = mysql_fetch_array($result)){
$firma = $rot["scritta"];
$car = $rot["type"];
if ($car=="Times New Roman"){$font='times.ttf';}
elseif ($car=="Comic Sans MS"){$font='comicbd.ttf';}
elseif ($car=="Monotype Corsiva"){$font='MTCORSVA.TTF';}
imagettftext($ima,15,0,$destra,$gra,$textcol,$font, $firma);
$gra += 22;
}
echo $gra;
imagepng($ima,"nuova.png");//trasformo, per comodità mia, l'immagine in nuova.png e la scrivo
echo "<img src=\"nuova.png\">";
imagedestroy($ima);
viene stampato testo anche con caratteri diversi.
Il problema che mi sono trovato ad affrontare è quello di incolonnare il testo richiamato.
Vorrei stampare le firme su 3 o 4 colonne.
Con la prima colonna non ho avuto problemi. Stampo il testo e aumento il valore della variabile $gra che in pratica crea lo spazio tra un testo e il successivo, però non vorrei stampare + di 9 testi per colonna (in questo caso per esempio). Ho notato che è il quarto valore della funzione imagettftext a controllare questo posizionamento e ho provato a cambiare la variabile come potete vedere sopra.; ma ovviamente non è la soluzione corretta Tongue (tutta la prima colonna non fa altro che spostarsi del valore indicato e non, come avrei voluto, stampare dal testo N. 10 in poi su un' altra colonna più a destra).
Potete aiutarmi?
Grazie
ps: spero di essere stato chiaro