Visualizzazione risultati 1 fino 19 di 19

Discussione: Scrivere testo su immagini

  1. #1
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito Scrivere testo su immagini

    Ciao ragazzi rieccomi a rompere ma ho bisogno di un po' di aiuto per una cosina che avevo in mente
    di realizzare da un po' e che cercando guide per realizzarlo al solito mi ha riportato qui ^_^
    Allora seguendo questa discussione Link

    ho cercato di fare la stessa cosa che voleva appunto realizzare miki92
    partendo dallo script che è stato scritto mi sono compilata il form....
    ma non va', non da' errori però non si vede l'immagine.

    Questo è il codice del form

    Codice HTML:
    <table class="base" cellpadding="3" cellspacing="3" width="1000">
     <tr>
    	<td><form name="modulo" action="card.php" method="get" onsubmit="return checkform(this)">
    <table class="base" cellpadding="3" cellspacing="3" width="100%">
     <tr>
    	<td class="bordo"><img border="0" src="images/card_01.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="checkbox" value="images/card_01.jpg"></td>
    	<td class="bordo"><img border="0" src="images/card_02.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="checkbox" value="images/card_02.jpg"></td>
    	<td class="bordo"><img border="0" src="images/card_03.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="checkbox" value="images/card_03.jpg"></td>
     </tr>
     <tr>
    	<td colspan="3">&nbsp;</td>
     </tr>
     <tr>
    	<td class="left" colspan="3">
    - Colore testo<br>
    Nero <input type="checkbox" name="colore_testo" checked value="0,0,0">		
    Blu <input type="checkbox" name="colore_testo" value="0,51,153">
    Rosso <input type="checkbox" name="colore_testo" value="204,51,102"><br><br>
    
    - Font<br>
    Arial <input type="checkbox" name="font" checked value="font/arial.ttf">
    Tahoma <input type="checkbox" name="font" value="font/tahoma.ttf"><br><br>
    
    - Posizione testo<br>
    Top: 10 <input type="checkbox" name="valore_x"  checked value="10"> 15 <input type="checkbox" name="valore_x" value="15"> 20 <input type="checkbox" name="valore_x" value="15"><br>
    Lato: 10 <input type="checkbox" name="valore_y" checked value="10"> 15 <input type="checkbox" name="valore_y" value="15"> 20 <input type="checkbox" name="valore_y" value="15"><br><br>
    
    <textarea name="testo" rows="10" cols="35"></textarea><br>
    <input type="submit" name="invia" value="Invia"></td>
     </tr>
    </table></form></td>
     </tr>
    </table>
    E questo è lo script
    Codice PHP:
    <?
    // Recupero i vari dati dal form
    $img = $_GET['card'];
    $txt = $_GET['testo'];
    $font = $_GET['font'];
    $colore_testo = $_GET['colore_testo'];
    $x = $_GET['valore_x'];
    $y = $_GET['valore_y'];

    // Scelgo l'immagine
    $mia_img = imagecreatefromjpeg("$img");

    // Scelgo il colore del testo
    //$colore_testo = imagecolorallocate($mia_img,255,255,255);

    // Creo una variabile con il testo da inserire
    $testo = "$txt";

    // Inserisco il testo nell'immagine, scelgo il colore, la font e la posizione del testo sull'immagine
    imagefttext ($mia_img, 10, $x, $y, $colore_testo, $font, $testo);

    // Definisco il tipo di immagine
    header("Content-type: image/jpeg");

    // Visualizzo l'immagine
    imagejpeg($mia_img);

    // Elimino tutto
    imagedestroy($mia_img);
    ?>
    Se volete fare una prova ecco la pagina ante Link

    Quando si pigia su invia e quindi si visualizza la pagina dello script nella barra del browser c'è
    Codice HTML:
    http://penelopesito.altervista.org/card/card.php?card=images%2Fcard_02.jpg&colore_testo=0%2C0%2C0&font=font%2Farial.ttf&valore_x=10&valore_y=10&testo=Ciao&invia=Invia
    Spero mi possiate aiutare a risolvere
    Grazie

  2. #2
    Guest

    Predefinito

    Dovevi leggere la discussione che hai linkato, fino in fondo.
    prova a cambiare:
    $mia_img = imagecreatefromjpeg("$img");
    e
    $testo = "$txt";

    con
    $mia_img = imagecreatefromjpeg($img);
    e
    $testo = $txt;
    Ultima modifica di stefanodurso : 29-04-2013 alle ore 09.56.02

  3. #3
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Stefano, ho dimenticato di scrivere che ovviamente ho gia fatto tutte le prove scritte in quella discussione, cmq ora ho corretto quei parametri e non va....
    Penelope ♥

  4. #4
    Guest

    Predefinito

    L'errore sta qua

    Codice PHP:
    imagefttext ($mia_img, 10, $x, $y, $colore_testo, $font, $testo);
    ti manca un parametro, il terzo che è l'angolo.

    trasforma in

    Codice PHP:
    imagefttext ($mia_img, 10, 0, $x, $y, $colore_testo, $font, $testo);
    e vedrai che funziona.

    Detto questo, ti consiglierei di rivedere l'intero script, perchè scritto davvero male.

    Intanto ti consigli di non usare gli short tags (<? ?>) in stile ASP ma quelli propri di PHP (<?php ?>), se trovi un server che non li ha attivi, oltre a non funzionare potresti vedere l'intero codice scritto a video.

    Poi per il form sostituisci i checkbox coi radiobutton (la scelta per ogni gruppo è unica).
    Non passare nel campo valore infomazioni che non sono necessarie (tipo le cartelle dove sono riposte le risorse - immagini, font, ...
    Se non proprio indispensabile per qualche motivo usa il metodo post e non il get.

    Per lo script vero e proprio beh ... da rifare, iniziando dai controlli sulla sicurezza.

    E poi che utilità hai a fare una cosa così:

    Codice PHP:
    $testo = "$txt";
    oltre a consumare risorse, doppiamente vista l'allocazione di memoria per due variabili dove ne basta una, e il parsing della stringa visto che inglobi i passaggi in una coppia di "?

  5. #5
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Simple, prima cosa grazie per la risposta,
    ho aggiunto il parametro per l'angolo ma non va' lo stesso.

    Per quanto riguarda lo script come ho scritto sopra l'ho preso da una vostra vecchia discussione, elaborato da miki92 con l'aiuto di funcool^^

    Ora io ho sistemato con le varie correzioni
    Codice PHP:
    <?php
    // Recupero i vari dati dal form
    $img = $_GET['card'];
    $txt = $_GET['testo'];
    $font = $_GET['font'];
    $colore_testo = $_GET['colore_testo'];
    $x = $_GET['valore_x'];
    $y = $_GET['valore_y'];

    // Scelgo l'immagine
    $mia_img = imagecreatefromjpeg($img);

    // Scelgo il colore del testo
    //$colore_testo = imagecolorallocate($mia_img,255,255,255);

    // Creo una variabile con il testo da inserire
    $testo = $txt;

    // Inserisco il testo nell'immagine, scelgo il colore, la font e la posizione del testo sull'immagine
    imagefttext ($mia_img, 10, 0, $x, $y, $colore_testo, $font, $testo);

    // Definisco il tipo di immagine
    header("Content-type: image/jpeg");

    // Visualizzo l'immagine
    imagejpeg($mia_img);

    // Elimino tutto
    imagedestroy($mia_img);
    ?>
    Ma non c'è verso di vedere l'immagine con il testo >_<'''

    Non capisco questo tuo suggerimento:
    - Poi per il form sostituisci i checkbox coi radiobutton (la scelta per ogni gruppo è unica).
    Devo usare i radio button perché ho inserito scelte su più cose?

    Per i miei form in genere uso post, è la prima volta che provo con get in effetti,
    ho fatto una prova sostituendo i parametri, ma quando si pigia su invia mi scarica direttamente la pagina script?!?

    Controlli di sicurezza a che scopo?

    Grazie infinite per la pazienza, scusate ma io sono autodidatta e php mi fa impazzire^^
    Penelope ♥

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da penelopesito Visualizza messaggio
    ...

    Ma non c'è verso di vedere l'immagine con il testo >_<'''

    Non capisco questo tuo suggerimento:
    - Poi per il form sostituisci i checkbox coi radiobutton (la scelta per ogni gruppo è unica).
    Devo usare i radio button perché ho inserito scelte su più cose?

    ...

    Controlli di sicurezza a che scopo?

    Grazie infinite per la pazienza, scusate ma io sono autodidatta e php mi fa impazzire^^
    Puoi trovare un esempio funzionante (è solo il tuo codice) qui.

    la pagina col form è:
    Codice PHP:
    <html>

    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <
    title>Ante card</title>

    <
    style type="text/css">
    body {background-color: #faf6db;
    text-align:center;
    font-family : "Tahoma";
    color : #4c412c;
    font-size : 14px
    }
    table.base{
    border:0px;
    text-align:center;
    font-family : "Tahoma";
    color : #4c412c;
    font-size : 12px;
    margin-left:auto;
    margin-right:auto
    }
    td.bordo{
    border:1px dotted #4c412c;
    text-align:center;
    font-family : "Tahoma";
    color : #4c412c;
    font-size : 12px;
    }
    td.left{
    border: 0px;
    text-align:left;
    font-family : "Tahoma";
    color : #4c412c;
    font-size : 12px;
    }
    </
    style>

    <
    script type="text/javascript">
    function
    checkform(f) {
    // Controllo dei radiobutton
    var boolRadio = false;
    for (var
    i = 0; i < f.elements['card'].length; i++) {
    boolRadio = boolRadio || f.elements['card'][i].checked;
    }
    if (!
    boolRadio) {
    alert("Seleziona una card");
    return
    false;
    }
    }
    </script>

    </head>

    <body>
    <table class="base" cellpadding="3" cellspacing="3" width="1000">
    <tr>
    <td><form name="modulo" action="card.php" method="get" onsubmit="return checkform(this)">
    <table class="base" cellpadding="3" cellspacing="3" width="100%">
    <tr>
    <td class="bordo"><img border="0" src="http://forum.it.altervista.org/images/card_01.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="checkbox" value="http://forum.it.altervista.org/images/card_01.jpg"></td>
    <td class="bordo"><img border="0" src="http://forum.it.altervista.org/images/card_02.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="checkbox" value="http://forum.it.altervista.org/images/card_02.jpg"></td>
    <td class="bordo"><img border="0" src="http://forum.it.altervista.org/images/card_03.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="checkbox" value="http://forum.it.altervista.org/images/card_03.jpg"></td>
    </tr>
    <tr>
    <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
    <td class="left" colspan="3">
    - Colore testo<br>
    Nero <input type="checkbox" name="colore_testo" checked value="0,0,0">
    Blu <input type="checkbox" name="colore_testo" value="0,51,153">
    Rosso <input type="checkbox" name="colore_testo" value="204,51,102"><br><br>

    - Font<br>
    Arial <input type="checkbox" name="font" checked value="font/arial.ttf">
    Tahoma <input type="checkbox" name="font" value="font/tahoma.ttf"><br><br>

    - Posizione testo<br>
    Top: 10 <input type="checkbox" name="valore_x" checked value="10"> 15 <input type="checkbox" name="valore_x" value="15"> 20 <input type="checkbox" name="valore_x" value="15"><br>
    Lato: 10 <input type="checkbox" name="valore_y" checked value="10"> 15 <input type="checkbox" name="valore_y" value="15"> 20 <input type="checkbox" name="valore_y" value="15"><br><br>

    <textarea name="testo" rows="10" cols="35"></textarea><br>
    <input type="submit" name="invia" value="Invia"></td>
    </tr>
    </table></form></td>
    </tr>
    </table>

    </body>

    </html>
    mentre la pagina php è:
    Codice PHP:
    <?php
    // Recupero i vari dati dal form
    $img = $_GET['card'];
    $txt = $_GET['testo'];
    $font = $_GET['font'];
    $colore_testo = $_GET['colore_testo'];
    $x = $_GET['valore_x'];
    $y = $_GET['valore_y'];

    // Scelgo l'immagine
    $mia_img = imagecreatefromjpeg($img);

    // Scelgo il colore del testo
    //$colore_testo = imagecolorallocate($mia_img,255,255,255);

    // Creo una variabile con il testo da inserire
    $testo = $txt;

    // Inserisco il testo nell'immagine, scelgo il colore, la font e la posizione del testo sull'immagine
    imagefttext ($mia_img, 10, 0, $x, $y, $colore_testo, $font, $testo);

    // Definisco il tipo di immagine
    header("Content-type: image/jpeg");

    // Visualizzo l'immagine
    imagejpeg($mia_img);

    // Elimino tutto
    imagedestroy($mia_img);
    ?>
    e come vedi funziona.

    Riguardo l'uso di checkbox e/o radiobutton: Con i checkbox dai la possibilità di selezionare o meno una determinata opzione, mentre con i radio button dai la possibilità di selezionare uno ed un solo elemento da un gruppo.
    Nel tuo caso, tu permetti scegliere anche tutte le caselle (tutte le immagini, tutti i font, ...) mentre è più corretto stabilire che per ogni gruppo ci sia la possibilità di selezionare una sola opzione.
    Riguardo la sicurezza, chi ti garantisce che il tuo script verrà usato solo per come lo hai pensato tu? E se qualcuno comincia a scrivere del codice ad hoc per bucarti il sito? Mai prendere i parametri passati così come sono senza controllarli, e non dare mai notizie in più di quelle strettamente necessarie (tipo i percorsi delle varie cartelle ...)
    EDIT:
    qui puoi trovare una versione modificata.

    questo il file col form:
    Codice PHP:
    <html>

    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <
    title>Ante card</title>

    <
    style type="text/css">
    body {background-color: #faf6db;
    text-align:center;
    font-family : "Tahoma";
    color : #4c412c;
    font-size : 14px
    }
    table.base{
    border:0px;
    text-align:center;
    font-family : "Tahoma";
    color : #4c412c;
    font-size : 12px;
    margin-left:auto;
    margin-right:auto
    }
    td.bordo{
    border:1px dotted #4c412c;
    text-align:center;
    font-family : "Tahoma";
    color : #4c412c;
    font-size : 12px;
    }
    td.left{
    border: 0px;
    text-align:left;
    font-family : "Tahoma";
    color : #4c412c;
    font-size : 12px;
    }
    </
    style>

    <
    script type="text/javascript">
    function
    checkform(f) {
    // Controllo dei radiobutton
    var boolRadio = false;
    for (var
    i = 0; i < f.elements['card'].length; i++) {
    boolRadio = boolRadio || f.elements['card'][i].checked;
    }
    if (!
    boolRadio) {
    alert("Seleziona una card");
    return
    false;
    }
    }
    </script>

    </head>

    <body>
    <form name="modulo" action="card2.php" method="post" onsubmit="return checkform(this)">

    <table class="base" cellpadding="3" cellspacing="3" width="1000">
    <tr>
    <td>
    <table class="base" cellpadding="3" cellspacing="3" width="100%">
    <tr>
    <td class="bordo">
    <img border="0" src="images/card_01.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="radio" value="01">
    </td>
    <td class="bordo">
    <img border="0" src="images/card_02.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="radio" value="02">
    </td>
    <td class="bordo">
    <img border="0" src="images/card_03.jpg" width="310" height="310" alt=""><br>
    <input name="card" type="radio" value="03">
    </td>
    </tr>
    <tr>
    <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
    <td class="left" colspan="3">
    <b>Colore testo:</b>&nbsp;
    <select name="colore_testo">
    <option value="nero" selected>Nero</option>
    <option value="blu">Blu</option>
    <option value="rosso">Rosso</option>
    </select>

    <br><br>

    <b>Font:</b><br>
    <input type="radio" name="font" checked value="arial"> Arial <br>
    <input type="radio" name="font" value="tahoma"> Tahoma<br><br>

    <b>Posizione testo:</b><br>
    Top:
    <select name="valore_x" size="3">
    <option value="10" selected>10</option>
    <option value="15">15</option>
    <option value="20">20</option>
    </select>

    Sinistra:
    <select name="valore_y" size="3">
    <option value="10" selected>10</option>
    <option value="15">15</option>
    <option value="20">20</option>
    </select>

    <br><br>

    <textarea name="testo" rows="10" cols="35"></textarea><br>
    <input type="submit" name="invia" value="Invia">
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </form>

    </body>
    </html>
    e questo il file per la generazione dell'immagine.
    Codice PHP:
    <?php
    // Recupero i vari dati dal form

    $img = isset($_POST['card']) ? $_POST['card'] : '';
    $txt = isset($_POST['testo']) ? $_POST['testo'] : '';
    $f = isset($_POST['font']) ? $_POST['font'] : '';
    $c = isset($_POST['colore_testo']) ? $_POST['colore_testo'] : '';
    $x = isset($_POST['valore_x']) ? (int)$_POST['valore_x'] : '';
    $y = isset($_POST['valore_y']) ? (int)$_POST['valore_y'] : '';

    //Verifico che sia stata scelta una immagine
    if(!$img) {
    echo
    "<h1>Non è stata selezionata alcuna immagine.</h1>";
    echo
    "<a href=\"index2.php\">Indietro</a>";
    exit;
    }

    switch(
    $f){
    case
    "tahoma":
    $font = "./font/tahoma.ttf";
    break;
    default:
    $font = "./font/arial.ttf";
    break;
    }

    // Scelgo l'immagine
    $mia_img = imagecreatefromjpeg('./images/card_' . $img . '.jpg');

    //Imposto i valori per il colore
    switch($c) {
    case
    "blu":
    $color = imagecolorallocate($mia_img, 0,51,153);
    break;
    case
    "rosso":
    $color = imagecolorallocate($mia_img, 204,51,102);
    break;
    default:
    $color = imagecolorallocate($mia_img, 0,0,0);
    break;
    }

    // Inserisco il testo nell'immagine, scelgo il colore, la font e la posizione del testo sull'immagine
    imagefttext ($mia_img, 10, 0, $x, $y, $color, $font, $txt);

    // Definisco il tipo di immagine
    header("Content-type: image/jpeg");

    // Visualizzo l'immagine
    imagejpeg($mia_img);

    // Elimino tutto
    imagedestroy($mia_img);
    ?>
    Ultima modifica di simpleticket : 30-04-2013 alle ore 13.05.51

  7. #7
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Cavoli Simple non so come ringraziarti ti sei preso un mare di disturbo grazie di cuore davvero,
    non avevo mai usato get proprio perchè avevo letto in rete che era pericoloso ma in questo caso
    non ci ho pensato, l'invio genera un immagine x cui non memorizzi nulla nel sito....
    ma evidentemente c'è chi è in grado di far porcherie in ogni modo.

    Non capisco come mai il codice scritto nelle tue pagine funziona e da me no,
    ho visto che hai solo inserito url completo delle immagini O_o
    Comunque ora provo con le modifiche che hai fatto tu e usando post ^_^

    - Ho capito la differenza tra checkbox e i radiobutton, me ne ricorderò anche x il futuro,
    tra l'altro avevo pure notato che si poteva spuntare più di una scelta,
    ma non pensavo fosse per via del tipo di selettore^^

    Ti faccio sapere subito esito per ora posso solo dirti di nuovo grazie,
    sopratutto per avermi spiegato il motivo dei vari errori


    *******************************************
    Non so che dire ma non va ho sostituito i codici ma niente non funziona...
    ho controllato tutti nomi delle cartelle per essere sicura fosse tutto a posto,
    unico dubbio, devo dare qualche permesso di scrittura?

    Pagina prova >_<
    Link
    Ultima modifica di penelopesito : 30-04-2013 alle ore 23.22.19
    Penelope ♥

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da penelopesito Visualizza messaggio
    Non so che dire ma non va ho sostituito i codici ma niente non funziona...
    ho controllato tutti nomi delle cartelle per essere sicura fosse tutto a posto,
    unico dubbio, devo dare qualche permesso di scrittura?

    Pagina prova >_<
    Link
    No, non c'entrano i permessi.
    Puoi postare la pagina card.php per intero senza così com'è adesso?

  9. #9
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Buon giorno Simple
    leggendo la tua domanda di vedere il codice della pagina card.php mi è venuto in mente
    di fare una prova, inserendo solo lo script.... e ora funziona, l'immagine con il testo si vede
    ma se provi a salvarla ti scarica la pagina anziché l'immagine >_<'

    link
    Ultima modifica di penelopesito : 01-05-2013 alle ore 14.12.04
    Penelope ♥

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da penelopesito Visualizza messaggio
    Buon giorno Simple
    leggendo la tua domanda di vedere il codice della pagina card.php mi è venuto in mente
    di fare una prova, inserendo solo lo script.... e ora funziona, l'immagine con il testo si vede
    ma se provi a salvarla ti scarica la pagina anziché l'immagine >_<'

    link
    Penso che dire quale era il problema sia corretto nei confronti di chi leggerà la discussione nel futuro conoscendo quindi cosa non fare per evitare problemi.

  11. #11
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Certo Simple giustissimo condividere, ma ora anche se si visualizza l'immagine
    con il testo scritto sopra, non la si può scaricare perché se clicchi su
    "salva immagine con nome" ti salvi la pagina.

    Nella pagina che elabora lo script ora c'è solo:
    Codice PHP:
    <?php
    // Recupero i vari dati dal form

    $img = isset($_POST['card']) ? $_POST['card'] : '';
    $txt = isset($_POST['testo']) ? $_POST['testo'] : '';
    $f = isset($_POST['font']) ? $_POST['font'] : '';
    $c = isset($_POST['colore_testo']) ? $_POST['colore_testo'] : '';
    $x = isset($_POST['valore_x']) ? (int)$_POST['valore_x'] : '';
    $y = isset($_POST['valore_y']) ? (int)$_POST['valore_y'] : '';

    //Verifico che sia stata scelta una immagine
    if(!$img) {
    echo
    "<h1>Non è stata selezionata alcuna immagine.</h1>";
    echo
    "<a href=\"ante_card.htm\">Indietro</a>";
    exit;
    }

    switch(
    $f){
    case
    "tahoma":
    $font = "./font/tahoma.ttf";
    break;
    default:
    $font = "./font/arial.ttf";
    break;
    }

    // Scelgo l'immagine
    $mia_img = imagecreatefromjpeg('./images/card_' . $img . '.jpg');

    //Imposto i valori per il colore
    switch($c) {
    case
    "blu":
    $color = imagecolorallocate($mia_img, 0,51,153);
    break;
    case
    "rosso":
    $color = imagecolorallocate($mia_img, 204,51,102);
    break;
    default:
    $color = imagecolorallocate($mia_img, 0,0,0);
    break;
    }

    // Inserisco il testo nell'immagine, scelgo il colore, la font e la posizione del testo sull'immagine
    imagefttext ($mia_img, 10, 0, $x, $y, $color, $font, $txt);

    // Definisco il tipo di immagine
    header("Content-type: image/jpeg");

    // Visualizzo l'immagine
    imagejpeg($mia_img);

    // Elimino tutto
    imagedestroy($mia_img);
    ?>
    Grazie ancora^^


    ************************************************** *****
    Ho risolto modificando l'ultima parte dello script così:

    Codice PHP:
    <?php
    // Recupero i vari dati dal form

    $img = isset($_POST['card']) ? $_POST['card'] : '';
    $txt = isset($_POST['testo']) ? $_POST['testo'] : '';
    $f = isset($_POST['font']) ? $_POST['font'] : '';
    $c = isset($_POST['colore_testo']) ? $_POST['colore_testo'] : '';
    $x = isset($_POST['valore_x']) ? (int)$_POST['valore_x'] : '';
    $y = isset($_POST['valore_y']) ? (int)$_POST['valore_y'] : '';

    //Verifico che sia stata scelta una immagine
    if(!$img) {
    echo
    "<h1>Non è stata selezionata alcuna immagine.</h1>";
    echo
    "<a href=\"ante_card.htm\">Indietro</a>";
    exit;
    }

    switch(
    $f){
    case
    "tahoma":
    $font = "./font/tahoma.ttf";
    break;
    default:
    $font = "./font/arial.ttf";
    break;
    }

    // Scelgo l'immagine
    $mia_img = imagecreatefromjpeg('./images/card_' . $img . '.jpg');

    //Imposto i valori per il colore
    switch($c) {
    case
    "blu":
    $color = imagecolorallocate($mia_img, 0,51,153);
    break;
    case
    "rosso":
    $color = imagecolorallocate($mia_img, 204,51,102);
    break;
    default:
    $color = imagecolorallocate($mia_img, 0,0,0);
    break;
    }

    // Inserisco il testo nell'immagine, scelgo il colore, la font e la posizione del testo sull'immagine
    imagefttext ($mia_img, 10, 0, $x, $y, $color, $font, $txt);

    imagejpeg($mia_img,"card.jpg");

    echo
    "<img src=\"card.jpg\">";

    // Elimino tutto
    imagedestroy($mia_img);
    ?>
    In questo modo si può salvare l'immagine e realizzare una pagina
    completa di style.

    -C'è un piccolo problema però, rimane in memoria l'immagine compilata
    per cui se torni nella pagina del form e ne compili una seconda,
    occorre refresciare la pagina dello script per vederla O_o
    e qui mi blocco... non saprei come risolvere ^_^'''
    Ultima modifica di penelopesito : 01-05-2013 alle ore 17.40.40
    Penelope ♥

  12. #12
    Guest

    Predefinito

    Non c'era bisogno della modifica, che anzi rende il tutto più problematico.
    Salvi una immagine sul disco e la usi per una pagina web. Funziona fino a quando sei tu l'unica ad usare il servizio. Pensa a cosa accade se due utenti creano due immagini differenti a distanza di un decimo di secondo, cosa vedranno secondo te? E se gli utenti sono 3, 4, ...

    No, decisamente non va.

    Lascia il tutto nella versione precedente. Il fatto che al salvatoaggio ti venga proposto come nome il nome del file (card.php) è normale e non vuol dire che venga salvato il file php ma solo l'immagine jpeg con un nome diverso (anzi viene salvato un file con nome card.php.jpg). Basta cambiare il nome et voilà ...

  13. #13
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Simple sicuro hai ragione tu ma se io provo a salvare l'immagine generata
    dallo script della pagina che hai realizzato tu, scarico la pagina card.php
    che ovviamente contiene solo un paio di caratteri
    Guarda stamp
    Cosa fare?
    Penelope ♥

  14. #14
    Guest

    Predefinito

    Metti nel campo "nome file" il nome che vuoi dare (es. card.jpg) e nel campo "Salva come" metti tutti i file.
    Ti si salva l'immagine.

    Prova

  15. #15
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Vero funziona.... ma la mia idea era permettere agli utenti di poter realizzare delle card personalizzate
    e così diventa un po' complicato da presentare, considera che c'è chi non sa
    nemmeno come postarla un'immagine in uno spazio^^

    Nella pagina in cui si fa scaricare l'immagine io volevo inserire il bottone x il download
    e magari uno per postarla direttamente su Facebook....

    Forse vorrei troppo ^_^ ma se si trovasse una soluzione
    come dire più pratica sarebbe perfetto
    Penelope ♥

  16. #16
    Guest

    Predefinito

    Il comportamento è normale, è il browser che crede di salvare una pagina PHP.
    Così non puoi intervenire più di tanto se non spiegando come effettuare il download.

    Un'altra via sarebbe quella che avevi intrapreso con la costruzione di una pagina in cui mostrare l'immagine salvata su disco, ma ...
    ... ma avrai capito che dovrai affrontare altri problemi.
    Devi tenere traccia di un file per ogni sessione attiva, ed occuparti della pulizia del filesystem periodicamente...

  17. #17
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Simple, mi rendo conto che è un lavoro difficile da mettere in pratica,
    ma spero di poterlo in qualche modo realizzare e pensavo, non si potrebbe fare
    in modo di salvare l'immagine generata in un db che sia una cartella o un file txt?
    Così da poterla recuperare poi in automatico in una pagina apposita per il download.

    E poi ci sarebbe un'altra cosa che mi è venuta in mente strada facendo,
    è possibile fare una pagina anteprima con le card per effettuare la scelta
    e quindi poi accedere alla pagina con il form per scriverci il testo?

    Ti sto stremando perdonami ma da sola non sono proprio in grado
    grazie^^
    Ultima modifica di penelopesito : 02-05-2013 alle ore 16.49.33
    Penelope ♥

  18. #18
    Guest

    Predefinito

    Scusa il ritardo.
    Dunque per ralizzare quello che pensi l'unica è salvare le immagini mantenendo la corrispondenza col browser, non importa dov le salvi (io protenderei per un file piuttosto che sul db).
    Anche la pagina di anteprima segue il ragionamento essendo una applicazione di quanto detto.

  19. #19
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ci mancherebbe Simple anzi grazie ancora per il prezioso aiuto,
    sono contenta ci sia la soluzione ^_^ anche io preferisco i file ma non saprei proprio come fare,
    so come recuperare i dati in un file ma tramite form... con il codice che ho qui non saprei da dove partire, non ho nemmeno la minima idea su come fare la pagina anteprima e quindi recuperare l'immagine in cui far inserire il testo sorry ma mi occorre ancora un po' della tua pazienza
    ovviamente senza fretta grazie
    Penelope ♥

Regole di scrittura

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