Visualizzazione risultati 1 fino 10 di 10

Discussione: Stampare dati Form su immagine di sfondo

  1. #1
    Guest

    Predefinito Stampare dati Form su immagine di sfondo

    Salve a tutti :)

    Avrei l'esigenza di stampare su una immagine (che fungerà da sfondo) i dati che un utente ha inviato da un form dopo averlo compilato.

    Ed inoltre che questi dati siano inseriti in un testo.

    Ad esempio:

    il form contiene questi dati: nome, cognome, città, data di nascita, etc

    compilati i campi ed inviato l'utente si ritrova l'immagine come sfondo e questo testo:

    Il membro Mario Rossi, nato a New York, il 27/12/1900 etc etc

    So bene che nel forum ci sono cose che mi potrebbero aiutare infatti ho visto molti post simili ma essendo praticamente ignorante su questo linguaggio non so dove andare a metter mani.

    Mi aiutereste?

  2. #2
    Guest

    Predefinito

    Anche se nessuno mi ha aiutato sono riuscito a scrivere una stringa php che in parte soddisfa ciò che voglio.

    Vorrei però che adesso qualcuno mi aiuti sul serio perchè le mie conoscenze sono arrivate ad un punto morti :P

    allora sono riuscito a scrivere un codice php che dopo l'invio dei dati me li stampa in un testo nella stessa pagina.

    potete vedere la demo qui:

    http://virgus87.altervista.org/inde...&Itemid=241

    questo è il codice che ho scritto:

    Codice:
    <?php
    $nome = $_POST["nome"];
    $grado = $_POST["grado"];
    $officiante = $_POST["officiante"];
    $arcibat = $_POST["arcibat"];
    $diobat = $_POST["diobat"];
    $giorno = $_POST["giorno"];
    $mese = $_POST["mese"];
    $anno = $_POST["anno"];
    if (!isset($_POST['submit'])) { // if page is not submitted to itself echo the form
    ?>
    <html>
    <head>
    <title>Certificato Battesimo</title>
    </head>
    <body>
    <form method="post" action="<?php echo $PHP_SELF;?>">
    Nome Battezzato:<br />
    <input type="text" size="12" maxlength="12" name="nome"><br />
    Officiante Battesimo:<br />
    <input type="text" size="12" maxlength="12" name="officiante"><br />
    Grado Ecclesiale:<br />
    <select name="grado">
    <option value="Suddiacono">Suddiacono</option>
    <option value="Diacono">Diacono</option>
    <option value="Cappellano Nobiliare">College Nobiliare</option>
    <option value="Vicario">Vicario</option>
    <option value="Sacrestano">Sacrestano</option>
    <option value="Parroco">Parroco</option>
    <option value="Vicario Diocesano">Vicario Diocesano</option>
    <option value="Vicario Generale">Vicario Generale</option>
    <option value="Vescovo">Vescovo</option>
    <option value="Arcivescovo">Arcivescovo</option>
    <option value="Vice Primate">Vice Primate</option>
    <option value="Primate">Primate</option>
    <option value="Patriarca">Patriarca</option
    <option value="Cadinale">Cardinale</option></select><br />
    Arcidiocesi Battesimo:<br />
    <select name="arcibat">
    <option value="Aquileia">Aquileia</option>
    <option value="Genova">Genova</option>
    <option value="Milano">Milano</option>
    <option value="Firenze">Firenze</option>
    <option value="Pisa">Pisa</option>
    <option value="Siena">Siena</option>
    <option value="Ravenna">Ravenna</option>
    <option value="Roma">Roma</option>
    <option value="Capua">Capua</option></select><br />
    Diocesi Battesimo:<br />
    <select name="diobat">
    <option value="Venezia">Venezia</option>
    <option value="Padova">Padova</option>
    <option value="Parenzo">Parenzo</option>
    <option value="Pola">Pola</option>
    <option value="Portogruaro">Portogruaro</option>
    <option value="Treviso">Treviso</option>
    <option value="Mantua">Mantua</option>
    <option value="Udine">Udine</option>
    <option value="Genova">Genova</option>
    <option value="Chiavari">Chiavari</option>
    <option value="La Spezia">La Spezia</option>
    <option value="Albenga">Albenga</option>
    <option value="Ventimiglia">Ventimiglia</option>
    <option value="Milano">Milano</option>
    <option value="Como">Como</option>
    <option value="Lodi">Lodi</option>
    <option value="Alessandria">Alessandria</option>
    <option value="Novara">Novara</option>
    <option value="Savona">Savona</option>
    <option value="Pavia">Pavia</option>
    <option value="Firenze">Firenze</option>
    <option value="Pistoia">Pistoia</option>
    <option value="Montevarchi">Montevarchi</option>
    <option value="Pisa">Pisa</option>
    <option value="Volterra">Volterra</option>
    <option value="Livorno">Livorno</option>
    <option value="San Miniato">San Miniato</option>
    <option value="Massa">Massa</option>
    <option value="Siena">Siena</option>
    <option value="Orbetello">Orbetello</option>
    <option value="Grosseto">Grosseto</option>
    <option value="Santa Fiora">Santa Fiora</option>
    <option value="Piombino">Piombino</option>
    <option value="Modena">Modena</option>
    <option value="Mirandola">Mirandola</option>
    <option value="Guestalla">Guestalla</option>
    <option value="Parma">Parma</option>
    <option value="Fornovo">Fornovo</option>
    <option value="Piacenza">Piacenza</option>
    <option value="L'Aquila">L'Aquila</option>
    <option value="Arezzo">Arezzo</option>
    <option value="Montepulciano">Montepulciano</option>
    <option value="Teramo">Teramo</option>
    <option value="Silvi">Silvi</option>
    <option value="Chieti">Chieti</option>
    <option value="Sulmona">Sulmona</option>
    <option value="Avezzano">Avezzano</option>
    <option value="Tagliacozzo">Tagliacozzo</option>
    <option value="Terracina">Terracina</option>
    <option value="Pontecorvo">Pontecorvo</option>
    <option value="Capua">Capua</option>
    <option value="Sessa Aurunca">Sessa Aurunca</option>
    <option value="Gaeta">Gaeta</option></select><br />
    <input type="submit" value="submit" name="submit">
    </form>
    <?
    } else {
    echo "Il nuovo fedele dell'Altissimo chiamato ".$nome.",<br />";
    echo "dal ".$grado." <i>".$officiante."</i><br />";
    echo "nella diocesi di ".$diobat.", facente parte dell'arcidiocesi di ".$arcibat.",<br />";
    echo "il giorno ".$giorno." nel mese di ".$mese." dell'Anno di grazia ".$anno.".<br />";
    }
    ?>
    potete notare che ho inserito già $giorno $mese ed $anno perchè ho necessità che l'utente scelga la data desiderata.

    ora mi serve la vostra saggezza perchè non so più dove mettere mani.

    In pratica vorrei inserire nel form un campo di scelta data tipo menu a tendina o calendario cliccabile.

    mi date una mano? :(

  3. #3
    Guest

    Predefinito

    scusate se riposto ancora di seguito ai miei messaggi ma volevo aggiornarvi :)

    sono riuscito ad inserire la data e anche a visualizzarla grazie ad un piccolo accorgimento javascript ed inserendo un paio di file nella cartella principale del mio sito.

    ecco il codice

    Codice:
    <?php
    $nome = $_POST["nome"];
    $grado = $_POST["grado"];
    $officiante = $_POST["officiante"];
    $arcibat = $_POST["arcibat"];
    $diobat = $_POST["diobat"];
    $databat = $_POST["databat"];
    if (!isset($_POST['submit'])) { // if page is not submitted to itself echo the form
    ?>
    <html>
    <head>
    <title>Certificato Battesimo</title>
    </head>
    <body>
    <form method="post" action="<?php echo $PHP_SELF;?>">
    Nome Battezzato:<br />
    <input type="text" size="12" maxlength="20" name="nome"><br />
    Officiante Battesimo:<br />
    <input type="text" size="12" maxlength="20" name="officiante"><br />
    Grado Ecclesiale:<br />
    <select name="grado">
    <option value="Suddiacono">Suddiacono</option>
    <option value="Diacono">Diacono</option>
    <option value="Cappellano Nobiliare">College Nobiliare</option>
    <option value="Vicario">Vicario</option>
    <option value="Sacrestano">Sacrestano</option>
    <option value="Parroco">Parroco</option>
    <option value="Vicario Diocesano">Vicario Diocesano</option>
    <option value="Vicario Generale">Vicario Generale</option>
    <option value="Vescovo">Vescovo</option>
    <option value="Arcivescovo">Arcivescovo</option>
    <option value="Vice Primate">Vice Primate</option>
    <option value="Primate">Primate</option>
    <option value="Patriarca">Patriarca</option
    <option value="Cadinale">Cardinale</option></select><br />
    Arcidiocesi Battesimo:<br />
    <select name="arcibat">
    <option value="Aquileia">Aquileia</option>
    <option value="Genova">Genova</option>
    <option value="Milano">Milano</option>
    <option value="Firenze">Firenze</option>
    <option value="Pisa">Pisa</option>
    <option value="Siena">Siena</option>
    <option value="Ravenna">Ravenna</option>
    <option value="Roma">Roma</option>
    <option value="Capua">Capua</option></select><br />
    Diocesi Battesimo:<br />
    <select name="diobat">
    <option value="Venezia">Venezia</option>
    <option value="Padova">Padova</option>
    <option value="Parenzo">Parenzo</option>
    <option value="Pola">Pola</option>
    <option value="Portogruaro">Portogruaro</option>
    <option value="Treviso">Treviso</option>
    <option value="Mantua">Mantua</option>
    <option value="Udine">Udine</option>
    <option value="Genova">Genova</option>
    <option value="Chiavari">Chiavari</option>
    <option value="La Spezia">La Spezia</option>
    <option value="Albenga">Albenga</option>
    <option value="Ventimiglia">Ventimiglia</option>
    <option value="Milano">Milano</option>
    <option value="Como">Como</option>
    <option value="Lodi">Lodi</option>
    <option value="Alessandria">Alessandria</option>
    <option value="Novara">Novara</option>
    <option value="Savona">Savona</option>
    <option value="Pavia">Pavia</option>
    <option value="Firenze">Firenze</option>
    <option value="Pistoia">Pistoia</option>
    <option value="Montevarchi">Montevarchi</option>
    <option value="Pisa">Pisa</option>
    <option value="Volterra">Volterra</option>
    <option value="Livorno">Livorno</option>
    <option value="San Miniato">San Miniato</option>
    <option value="Massa">Massa</option>
    <option value="Siena">Siena</option>
    <option value="Orbetello">Orbetello</option>
    <option value="Grosseto">Grosseto</option>
    <option value="Santa Fiora">Santa Fiora</option>
    <option value="Piombino">Piombino</option>
    <option value="Modena">Modena</option>
    <option value="Mirandola">Mirandola</option>
    <option value="Guestalla">Guestalla</option>
    <option value="Parma">Parma</option>
    <option value="Fornovo">Fornovo</option>
    <option value="Piacenza">Piacenza</option>
    <option value="L'Aquila">L'Aquila</option>
    <option value="Arezzo">Arezzo</option>
    <option value="Montepulciano">Montepulciano</option>
    <option value="Teramo">Teramo</option>
    <option value="Silvi">Silvi</option>
    <option value="Chieti">Chieti</option>
    <option value="Sulmona">Sulmona</option>
    <option value="Avezzano">Avezzano</option>
    <option value="Tagliacozzo">Tagliacozzo</option>
    <option value="Terracina">Terracina</option>
    <option value="Pontecorvo">Pontecorvo</option>
    <option value="Capua">Capua</option>
    <option value="Sessa Aurunca">Sessa Aurunca</option>
    <option value="Gaeta">Gaeta</option></select><br />
    Data battesimo:<br />
    <script language="javascript" type="text/javascript" src="datetimepicker.js">
    
    //Date Time Picker script- by TengYong Ng of http://www.rainforestnet.com
    //Script featured on JavaScript Kit (http://www.javascriptkit.com)
    //For this script, visit http://www.javascriptkit.com 
    
    </script>
    
    <input id="demo1" type="text" size="25" name="databat"><a href="javascript:NewCal('demo1','ddmmyyyy')"><img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a><br /><br />
    
    <input type="submit" value="submit" name="submit">
    </form>
    <?
    } else {
    echo "Il nuovo fedele dell'Altissimo chiamato ".$nome.",<br />";
    echo "dal ".$grado." <i>".$officiante."</i><br />";
    echo "nella diocesi di ".$diobat.", facente parte dell'arcidiocesi di ".$arcibat.",<br />";
    echo "in data ".$databat.".<br />";
    }
    ?>
    mi potete dire adesso come poter inserire questa immagine come sfondo dopo l'invio del form?

    http://i39.tinypic.com/1zgdi07.jpg

    ed inoltre come centrare il testo con i dati del form cambiandogli anche colore,font e grandezza per ottenere questo:

    http://i55.tinypic.com/1h8j9l.jpg
    Ultima modifica di virgus87 : 10-11-2010 alle ore 18.31.46

  4. #4
    Guest

    Predefinito

    Quello che non ho capito è se vuoi che i dati inviati via form facciano parte dell'immagine o se questa debba essere semplicemente lo sfondo di una pagina web.
    Nel primo caso ti dico subito che non è affatto banale dato che bisognerà avere un font proporzionale, ma non il font che già conosci tu, ma deve avere determinate caratteristiche, realizzarlo se non vuoi usare un carattere predefinito ci sono alcuni tool online, come ad esempio: http://www.puremango.co.uk/2005/04/gd_fontmaker_114/ ma scordato il gotico o altri font complessi :)
    Questo perché per centrare il testo nell'immagine devi sapere due cose fondamentali: la larghezza dell'immagine e ce l'hai sicuramente e la larghezza della riga da stampare e questa devi calcolarla volta per volta.
    tieni presente che non puoi usare una sola stringa che si adatta come in HTML, ma dovrai calcolare la lunghezza di un gruppo di parole e poi mettere un a capo e così via fino alla fine della stringa, se no vai oltre l'immagine stessa e ne perdi metà.
    Fatto tutto questo ragionamento ti dico che dovrai divertirti con le librerie grafiche del PHP.
    Buon divertimento :)
    Se invece vuoi semplicemente mettere una frase sopra u'immagine di sfondo di una pagina html è una cosa che ovviamente saprai già fare, ma non mi pare questo il tuo caso giusto?

  5. #5
    Guest

    Predefinito

    Grazie della risposta intanto :)

    sulle mie conoscenze php ci andrei piano parlami come ad un principiante

    Allora io vorrei che l'utente dopo aver compilato il form si veda comparire quell'immagine come sfondo al testo che contiene i suoi dati.
    Però vorrei che sia testo che immagine siano una cosa sola in modo che possano essere salvati come singola immagine.
    Spero di essermi spiegato

    magari sarebbe carino se inviato il form si aprisse un'altra pagina web in cui compaia l'immagine contente il testo.

    cosa devo aggiungere al codice?

  6. #6
    Guest

    Predefinito

    Allora per quanto tu dica: "sulle mie conoscenze php ci andrei piano parlami come ad un principiante" sappi che ciò che chiedi non è affatto banale anzi è molto complesso.
    Bisogna prima di tutto stabilire come formattare le informazioni che vuoi stampare, quindi nome e cognome, data di battesimo eccetera e definirle riga per riga.
    Poi siccome penso che il testo non sia complesso ne troppo lungo, a meno che uno non si chiami che so "olindo massimigliano desantis gaspardo" non rischi di andare fuori dal bordo dell'immagine.
    Ad ogni buon conto se vuoi centrare il testo nell'immagine devi sempre sapere quanti pixel è l'argo il testo stesso, in pratica devi fare questa operazine matematica = largImmagine - largFrase / 2 e hai il punto in cui inserire il testo, non è difficle ma devi usare la funzione imagefontwidth() carattere per carattere e sommare i risultati in un valore (I non è larga come X).
    Dopo che hai la lunghezza della stringa calcoli l'offset, cioè il punto in cui va inserita nella nuova immagine e via così stringa dopo stringa fino a comporre l'immagine, insomma ci vogliono un po' di loop.
    Una volta che sai in quale coordinate inserire le stringhe il resto è facile, se ti leggi il manuale vedi che non è impossibile solo un po' incasinato.

    Per la seconda domanda devi solo aprire una popup nulla di complicato.

  7. #7
    Guest

    Predefinito

    Ci provo! Speriamo bene

    una cosa: per conoscere la larghezza dei caratteri posso farlo come? tramite un programma di grafica(su quello sono molto bravo)

    e per inserire il font che voglio tipo gotico?
    Ultima modifica di virgus87 : 10-11-2010 alle ore 19.18.46

  8. #8
    Guest

    Predefinito

    Capisco che a volte sono farraginoso ma li leggi i post che scrivo? devi usare la funzione imagefontwidth() carattere per carattere e sommare i risultati in un valore (I non è larga come X).
    Per il gotico scordatelo! Te lo dovresti fare da solo, non sono font come quelli di Windows ma immagini BMP con il font carattere per carattere disegnato dentro.
    In un post precedente ti ho passato il link ad un tool online che ti permette di crearne ma poi per il resto si tratta di disegnarselo.
    Buon divertimento.

  9. #9
    Guest

    Predefinito

    ciao e grazie per la risposta ma sono proprio le basi che mi mancano e necessito di un gran lavoro per arrivare ai risultati. Del resto come vedrai di seguito la costanza e l'inteligenza non mi mancano

    dopo tantissmo travagliare e pensare sono arrivato ad una soluzione quasi finale.

    ho raggiunto un ottimo risultato come potrai vedere dalla mia pagina una volta compilato il form

    http://virgus87.altervista.org/index...d=3&Itemid=241

    ecco il codice modificato:

    Codice:
    <?php
    $nome = $_POST["nome"];
    $grado = $_POST["grado"];
    $officiante = $_POST["officiante"];
    $arcibat = $_POST["arcibat"];
    $diobat = $_POST["diobat"];
    $databat = $_POST["databat"];
    if (!isset($_POST['submit'])) { // if page is not submitted to itself echo the form
    ?>
    <html>
    <head>
    <title>Certificato Battesimo</title>
    </head>
    <body>
    <form action="process.php" method="post" target="foo" onsubmit="window.open('', 'foo', 'width=520,height=620,status=yes,resizable=yes,scrollbars=yes')">
    Nome Battezzato:<br />
    <input type="text" size="12" maxlength="20" name="nome"><br />
    Officiante Battesimo:<br />
    <input type="text" size="12" maxlength="20" name="officiante"><br />
    Grado Ecclesiale:<br />
    <select name="grado">
    <option value="Suddiacono">Suddiacono</option>
    <option value="Diacono">Diacono</option>
    <option value="Cappellano Nobiliare">College Nobiliare</option>
    <option value="Vicario">Vicario</option>
    <option value="Sacrestano">Sacrestano</option>
    <option value="Parroco">Parroco</option>
    <option value="Vicario Diocesano">Vicario Diocesano</option>
    <option value="Vicario Generale">Vicario Generale</option>
    <option value="Vescovo">Vescovo</option>
    <option value="Arcivescovo">Arcivescovo</option>
    <option value="Vice Primate">Vice Primate</option>
    <option value="Primate">Primate</option>
    <option value="Patriarca">Patriarca</option
    <option value="Cadinale">Cardinale</option></select><br />
    Arcidiocesi Battesimo:<br />
    <select name="arcibat">
    <option value="Aquileia">Aquileia</option>
    <option value="Genova">Genova</option>
    <option value="Milano">Milano</option>
    <option value="Firenze">Firenze</option>
    <option value="Pisa">Pisa</option>
    <option value="Siena">Siena</option>
    <option value="Ravenna">Ravenna</option>
    <option value="Roma">Roma</option>
    <option value="Capua">Capua</option></select><br />
    Diocesi Battesimo:<br />
    <select name="diobat">
    <option value="Venezia">Venezia</option>
    <option value="Padova">Padova</option>
    <option value="Parenzo">Parenzo</option>
    <option value="Pola">Pola</option>
    <option value="Portogruaro">Portogruaro</option>
    <option value="Treviso">Treviso</option>
    <option value="Mantua">Mantua</option>
    <option value="Udine">Udine</option>
    <option value="Genova">Genova</option>
    <option value="Chiavari">Chiavari</option>
    <option value="La Spezia">La Spezia</option>
    <option value="Albenga">Albenga</option>
    <option value="Ventimiglia">Ventimiglia</option>
    <option value="Milano">Milano</option>
    <option value="Como">Como</option>
    <option value="Lodi">Lodi</option>
    <option value="Alessandria">Alessandria</option>
    <option value="Novara">Novara</option>
    <option value="Savona">Savona</option>
    <option value="Pavia">Pavia</option>
    <option value="Firenze">Firenze</option>
    <option value="Pistoia">Pistoia</option>
    <option value="Montevarchi">Montevarchi</option>
    <option value="Pisa">Pisa</option>
    <option value="Volterra">Volterra</option>
    <option value="Livorno">Livorno</option>
    <option value="San Miniato">San Miniato</option>
    <option value="Massa">Massa</option>
    <option value="Siena">Siena</option>
    <option value="Orbetello">Orbetello</option>
    <option value="Grosseto">Grosseto</option>
    <option value="Santa Fiora">Santa Fiora</option>
    <option value="Piombino">Piombino</option>
    <option value="Modena">Modena</option>
    <option value="Mirandola">Mirandola</option>
    <option value="Guestalla">Guestalla</option>
    <option value="Parma">Parma</option>
    <option value="Fornovo">Fornovo</option>
    <option value="Piacenza">Piacenza</option>
    <option value="L'Aquila">L'Aquila</option>
    <option value="Arezzo">Arezzo</option>
    <option value="Montepulciano">Montepulciano</option>
    <option value="Teramo">Teramo</option>
    <option value="Silvi">Silvi</option>
    <option value="Chieti">Chieti</option>
    <option value="Sulmona">Sulmona</option>
    <option value="Avezzano">Avezzano</option>
    <option value="Tagliacozzo">Tagliacozzo</option>
    <option value="Terracina">Terracina</option>
    <option value="Pontecorvo">Pontecorvo</option>
    <option value="Capua">Capua</option>
    <option value="Sessa Aurunca">Sessa Aurunca</option>
    <option value="Gaeta">Gaeta</option></select><br />
    Data battesimo:<br />
    <script language="javascript" type="text/javascript" src="datetimepicker.js">
    
    //Date Time Picker script- by TengYong Ng of http://www.rainforestnet.com
    //Script featured on JavaScript Kit (http://www.javascriptkit.com)
    //For this script, visit http://www.javascriptkit.com 
    
    </script>
    
    <input id="demo1" type="text" size="25" name="databat"><a href="javascript:NewCal('demo1','ddmmyyyy')"><img src="http://virgus87.altervista.org/images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a><br /><br />
    
    <input type="submit" value="submit" name="submit">
    </form>
    <?
    } else {
    echo "Il nuovo fedele dell'Altissimo chiamato ".$nome.",<br />";
    echo "dal ".$grado." <i>".$officiante."</i><br />";
    echo "nella diocesi di ".$diobat.", facente parte dell'arcidiocesi di ".$arcibat.",<br />";
    echo "in data ".$databat.".<br />";
    }
    ?>

    inoltre ho inserito nella cartella principale del mio sito il file process.php con questo codice che però mi da ancora un problema non riesco ad inserire il font che desidero per il testo (infatti come potrai leggere avrò fatto qualche casotto nell'inserimento della voce fontface :P):
    :

    <html>
    <body>
    <div id="container">
    <p id="dichiarazione"> Il nuovo fedele dell'Altissimo chiamato <?php echo $_POST["nome"]; ?> ha ricevuto il sacramento del battesimo,<br />
    dal <?php echo $_POST["grado"];?> <?php echo $_POST["officiante"]; ?><br />
    nella diocesi di <?php echo $_POST["diobat"];?>, facente parte dell'arcidiocesi di <?php echo $_POST["arcibat"]; ?>,<br />
    in data <?php echo $_POST["databat"]; ?>.<br />
    <p>
    </div>

    <style type="text/css">
    div#container {background:url("http://i39.tinypic.com/1zgdi07.jpg") no-repeat scroll center top #FFFFFF; width: 500; height: 600;}
    p#dichiarazione{text-align:center; font-size:1.2em; position:relative; top: 350;}

    @font-face {
    font-family: "Kimberley";
    src: url(http://www.princexml.com/fonts/larabie/kimberle.ttf) format("truetype");
    }
    h1 { font-family: "Kimberley", sans-serif }
    }
    </style>

    </body>
    </html>
    potresti aiutarmi a capire come far visualizzare il testo con il font desiderato?

    e cosa più importante come poter fondere testo e sfondo per permettere all'utente di salvare il tutto come immagine?

  10. #10
    Guest

    Predefinito

    Rieccomi :D

    Ho trovato questo script in giro per il web che afferma di poter trasformare un testo in un'immagine.
    Può essere utile per trasformare il testo in immagine e dire inoltre allo script di prendere come sfondo quello della pergamena?

    Codice:
    <?php
    /**
     * Class for converting Text to Image.
     * Font type can be specified
     * The alignment where the text will echo can also be set.
     *
     * @compiled Subesh Pokhrel from PHP.net and PHPclasses.org
     *
     */
    define("ALIGN_LEFT", "left");
    define("ALIGN_CENTER", "center");
    define("ALIGN_RIGHT", "right");
    
    class TextToImage {
    
    	private $im;
    
    	/**
    	 * @name 				   : makeImageF
    	 *
    	 * Function for create image from text with selected font.
    	 *
    	 * @param String $text     : String to convert into the Image.
    	 * @param String $font     : Font name of the text.
    	 * @param int    $W        : Width of the Image.
    	 * @param int    $H        : Hight of the Image.
    	 * @param int	 $X        : x-coordinate of the text into the image.
    	 * @param int    $Y        : y-coordinate of the text into the image.
    	 * @param int    $fsize    : Font size of text.
    	 * @param array  $color	   : RGB color array for text color.
    	 * @param array  $bgcolor  : RGB color array for background.
    	 *
    	 */
    	public function makeImageF($text, $font="CENTURY.TTF", $W=800, $H=200, $X=0, $Y=0, $fsize=18, $color=array(0x0,0x0,0x0), $bgcolor=array(0xFF,0xFF,0xFF)){
    
    		$this->im = @imagecreate($W, $H)
    		or die("Cannot Initialize new GD image stream");
    
    		$background_color = imagecolorallocate($this->im, $bgcolor[0], $bgcolor[1], $bgcolor[2]);		//RGB color background.
    		$text_color = imagecolorallocate($this->im, $color[0], $color[1], $color[2]);			//RGB color text.
    
    		$this->imagettftextbox($this->im, $fsize,0, $X,$Y, $text_color, $font, $text,800);
    	}
    
    	/**
    	* This function works to set alignment in image and write image.
    	*/
    	public function imagettftextbox(&$image, $size, $angle, $left, $top, $color, $font, $text, $max_width)
    	{
    		$text_lines = explode("\n", $text); // Supports manual line breaks!
    
    		$lines = array();
    		$line_widths = array();
    
    		$largest_line_height = 0;
    
    		foreach($text_lines as $block)
    		{
    			$current_line = ''; // Reset current line
    			$align=ALIGN_CENTER; // Setting Alignment
    			$words = explode(' ', $block); // Split the text into an array of single words
    
    			$first_word = TRUE;
    
    			$last_width = 0;
    
    			for($i = 0; $i < count($words); $i++)
    			{
    				$item = $words[$i];
    				$dimensions = imagettfbbox($size, $angle, $font, $current_line . ($first_word ? '' : ' ') . $item);
    				$line_width = $dimensions[2] - $dimensions[0];
    				$line_height = $dimensions[1] - $dimensions[7];
    
    				if($line_height > $largest_line_height) $largest_line_height = $line_height;
    
    				if($line_width > $max_width && !$first_word)
    				{
    					$lines[] = $current_line;
    
    					$line_widths[] = $last_width ? $last_width : $line_width;
    
    					/*if($i == count($words))
    					 {
    					 continue;
    					 }*/
    
    					$current_line = $item;
    				}
    				else
    				{
    					$current_line .= ($first_word ? '' : ' ') . $item;
    				}
    
    				if($i == count($words) - 1)
    				{
    					$lines[] = $current_line;
    
    					$line_widths[] = $line_width;
    				}
    
    				$last_width = $line_width;
    
    				$first_word = FALSE;
    			}
    
    			if($current_line)
    			{
    				$current_line = $item;
    			}
    		}
    
    		$i = 0;
    		foreach($lines as $line)
    		{
    			if($align == ALIGN_CENTER)
    			{
    				$left_offset = ($max_width - $line_widths[$i]) / 2;
    			}
    			elseif($align == ALIGN_RIGHT)
    			{
    				$left_offset = ($max_width - $line_widths[$i]);
    			}
    			imagettftext($image, $size, $angle, $left + $left_offset, $top + $largest_line_height + ($largest_line_height * $i), $color, $font, $line);
    			$i++;
    		}
    
    		return $largest_line_height * count($lines);
    	}
    
    	/**
    	 * @name showAsPng
    	 *
    	 * Function to show text as Png image.
    	 *
    	 */
    	public function showAsPng(){
    
    		header("Content-type: image/png");
    		return imagepng($this->im);
    	}
    
    }
    ?>
    Save this file as TextToImage.class.php.

    And then use this code to call the classes instance.
    Codice:
    <?php
    /** Downloaded from PHP classes
    * Please note that KORONG.TTF font file should be present to run the code.
    */
    
    ini_set("display_errors",1);
    require_once('TextToImage.class.php');
    $_im = new TextToImage();
    $_im->makeImageF("Thank you ! Subesh Pokhrel \n subesh.com.np","KORONG.TTF");
    $_im->showAsPng();
    ?>
    Si può fare?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •