Visualizzazione risultati 1 fino 27 di 27

Discussione: Scrivere un testo su un immagine con php

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito Scrivere un testo su un immagine con php

    Ciao volevo scrivere un testo (scelto da me) su un immagine (scelta sempre da me) qualcuno mi sa dire se c'è un modo in php? Ho questo codice:
    Codice PHP:
    <?
    // Creo una nuova immagine
    $mia_img = imagecreate(275,25);

    // Definisco i colori dello sfondo e del testo
    $colore_sfondo = imagecolorallocate($mia_img,102,102,153);
    $colore_testo = imagecolorallocate($mia_img,255,255,255);

    // Do colorealla mia immagine $mia_img
    imagefill($mia_img,0,0,$colore_sfondo);

    // Creo una variabile con il testo da stampare nell'immagine
    $testo = "Il tuo IP è " . $_SERVER[REMOTE_ADDR];

    // Scrivo il testo all'interno dell'immagine
    Imagestring($mia_img,10,5,5,$testo,$colore_testo);

    // Definisco l'intestazione del file
    // indicando che si tratta di una immagine Jpeg
    header("Content-type: image/jpeg");

    // Mostro l'immagine creata
    imagejpeg($mia_img);

    // Faccio pulizia
    imagedestroy($mia_img);
    ?>
    Ma questo mi scrive il mio IP su un immagine creata da lui, io voglio un immagine e testo mio.

    EDIT: HO sbagliato categoria! Scusate!
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Al posto di:
    Codice PHP:
    $mia_img = imagecreate(275,25);
    Metti (in questo caso utilizza un'immagine JPG):
    Codice PHP:
    $mia_img = imagecreatefromjpeg("percorsoimmagine.jpg");
    Cancella:
    Codice PHP:
    $colore_sfondo = imagecolorallocate($mia_img,102,102,153);
    Cancella:
    Codice PHP:
    // Do colorealla mia immagine $mia_img
    imagefill($mia_img,0,0,$colore_sfondo);
    Modifica:
    Codice PHP:
    $testo = "Il tuo IP è " . $_SERVER[REMOTE_ADDR];
    Con:
    Codice PHP:
    $testo = "testo";
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Mi diresti come cambiare colore della scritta e se è possibile centrarla all'immagine? Magari aggiungendo anche il carattere e la grandezza?
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Ospite Guest

    Predefinito

    Per cambiare colore al testo modifica i valori numerici di:
    Codice PHP:
    $colore_testo = imagecolorallocate($mia_img,255,255,255);
    cioè 255,255,255. [quegli interi corrispondono al modello di colori RGB].
    Per allineare il testo devi agire sulla linea:
    Codice PHP:
    Imagestring($mia_img,10,5,5,$testo,$colore_testo);
    modificando i valori 5 e 5.
    Il primo 5 è lo spazio da lasciare dal bordo sinistro [orizzontalmente]
    Il secondo 5 è lo spazio da lasciare dal bordo alto [verticalmente].

    Ciao!

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Citazione Originalmente inviato da probid
    Per cambiare colore al testo modifica i valori numerici di:
    Codice PHP:
    $colore_testo = imagecolorallocate($mia_img,255,255,255);
    cioè 255,255,255. [quegli interi corrispondono al modello di colori RGB].
    Cioè il codice colore normale (es. #FFFFFF) oppure devo usare qualche sito per capire il codice colore per li?
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Ospite Guest

    Predefinito

    Guarda qui
    Colonna destra della tabella.

  7. #7
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Grazie ma mi sapresti dire come posso scegliere io il carattere da mettere?
    Apprezzi l'aiuto? Offrimi un caffè!

  8. #8
    Ospite Guest

    Predefinito

    Se vuoi usare un tuo font devi usare la funzione imagettftext() al posto di imagestring()

  9. #9
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    E quindi come verrebbe il codice?
    Apprezzi l'aiuto? Offrimi un caffè!

  10. #10
    Ospite Guest

    Predefinito

    Dare un'occhiata su php.net no eh?
    Codice PHP:
    imagefttext ($mia_img, 10, 0, $x, $y,$colore_testo, $font_file, $testo);
    dove $font_file è l'indirizzo del font da usare
    $x è lo spazio da lasciare dal bordo sinistro [orizzontalmente]
    $y è lo spazio da lasciare dal bordo alto [verticalmente]
    0 è l'angolo
    al posto di
    Codice PHP:
    Imagestring($mia_img,10,5,5,$testo,$colore_testo);

  11. #11
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    [BREVE OT]Scusatemi per il ritardo di questo post ma oggi mi è venuta un idea però dato che c'entrava questo topic ero indeciso tra due cose:
    1. Se continuo a scrivere qui, come è successo in passato, riceverò un'infrazione per "Riesumazione Vecchio Topic".
    2. Se apro un nuovo topic su questo argomento mi viene data infrazione per "Spam / Cross Posting".
    Ma poi infine ho deciso di postare qui, quindi vi chiedo un favore, se mi dovete dare il "cartellino" vi prego di farmi prima completare la mia idea e poi darmelo.[/BREVE OT]

    Ho modificato il codice cosi:
    Codice PHP:
    <?
    // Recupero i vari dati dal form
    $img = $_GET['immagine'];
    $txt = $_GET['testo_immagine'];
    $font = $_GET['font'];
    $x = $_GET['valore_x'];
    $y = $_GET['valore_y'];
    $angolo = $_GET['valore_angolo'];

    // 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, $angolo, $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 mi viene restituito questo errore, ho provato a modificare il codice da me ma non funziona: Fatal error: Call to undefined function imagecreatefromjpeg() in C:\AppServ\www\elabora.php on line 11
    Apprezzi l'aiuto? Offrimi un caffè!

  12. #12
    Ospite Guest

    Predefinito

    Evidentemente non hai le librerie GD installate in locale.

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ok hai ragione, in secondo momento penserò a istallarle in locale, però ora sto provando su AlterVista dove mi mostra una casella bianca a fine operazione. - Link -
    Apprezzi l'aiuto? Offrimi un caffè!

  14. #14
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    L'indirizzo del primo font è sbagliato.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  15. #15
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Va beh ora lo correggo però fatto resta che anche con gli altri font visualizzo immagine bianca con crocetta rossa...

    EDIT: funcool guarda che i percorsi sono corretti al 100%. Ho provato ad editare la pagina ma il collegamento è quello.
    Sono salvo niente cartello...ma per ora perchè sono gentili che hanno accolto la mia richiesta o che?
    Ultima modifica di miki92 : 08-10-2007 alle ore 13.09.01
    Apprezzi l'aiuto? Offrimi un caffè!

  16. #16
    Guest

    Predefinito

    e per scrivere una immagine usando come sfondo un'altra immagine?? come devo fare?

  17. #17
    Ospite Guest

    Predefinito

    Questo tutorial può esserti utile.

    Qui trovi invece il riferimento ufficiale sulle funzioni per la manipolazioni di immagini tramite le librerie GD.

    Le funzioni che possono esserti utili sono (a seconda del formato dell'immagine da utilizzare come sfondo):

    imagecreatefromgif()
    imagecreatefrompng()
    imagecreatefromjpeg()
    imagecreatefromxpm()
    imagecreatefromwbmp()
    iimagecreatefromxbm()

    Ciao!

  18. #18
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ma lo script è già pronto, ho letto php.net e uso la funziona imagecreatefromjpeg perchè le immagini sono in questo formato...però non capisco perchè non vada lo script...cioè perchè mi visualizzi immagini bianche.
    Apprezzi l'aiuto? Offrimi un caffè!

  19. #19
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    funcool guarda che i percorsi sono corretti al 100%. Ho provato ad editare la pagina ma il collegamento è quello.
    Qui dovrebbe trovarsi il primo font...

    Togli:
    Codice PHP:
    header("Content-type: image/jpeg");
    Così si vedono gli errori dello script.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  20. #20
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Tolto, comunque vedo pagina bianca. Infine riguardo il fatto della font è stato un errore mio perchè non avevo notato bene l'estensione, io avevo scritto .ttf invece era .TTF
    Apprezzi l'aiuto? Offrimi un caffè!

  21. #21
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Se come "Immagine" non selezioni nulla, ti dà una pagina bianca, altrimenti non dà errori. Prova a rimettere:
    Codice PHP:
    header("Content-type: image/jpeg");
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  22. #22
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    L'ho rimesso ed ho provato a rinominare le estensione delle immagini da jpg a jpeg ma non cambia nulla, vedo pagina e sorgente pagina completamente bianchi.
    Apprezzi l'aiuto? Offrimi un caffè!

  23. #23
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Correggi:
    Codice PHP:
    $mia_img = imagecreatefromjpeg("$img");
    Con:
    Codice PHP:
    $mia_img = imagecreatefromjpeg($img);
    E correggi:
    Codice PHP:
    $testo = "$txt";
    Con:
    Codice PHP:
    $testo = $txt;
    Inoltre i percorsi delle immagini sono ancora sbagliati.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  24. #24
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ok ora funziona, quindi dovevo solo levare quelle virgolette. Ma se cambio il valore "10" a questa riga:
    Codice PHP:
    imagefttext ($mia_img, 10, $angolo, $x, $y,$colore_testo, $font, $testo);
    Ingrandisco il carattere vero?
    Apprezzi l'aiuto? Offrimi un caffè!

  25. #25
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Sì, se lo aumenti, dovrebbe ingrandirsi il testo.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  26. #26
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Grazie ora funziona tutto per il meglio. Ma è possibile aggiungere una stringa che, arrivati a un limite da me selezionato, faccia scendere il testo a capo specie come se si trovasse in una casella di testo nascosta!?
    Apprezzi l'aiuto? Offrimi un caffè!

  27. #27
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Grazie ora funziona tutto per il meglio. Ma è possibile aggiungere una stringa che, arrivati a un limite da me selezionato, faccia scendere il testo a capo specie come se si trovasse in una casella di testo nascosta!?
    Cioè...vorresti troncare e mandare a capo il testo ogni tot caratteri?

    Allora potresti sostituire:

    Codice PHP:
    $testo = $txt;
    con:

    Codice PHP:
    $dividi=10; //ogni 10 caratteri manda a capo, modifica
    for($i=0;$i<=ceil(strlen($txt)/$dividi);$i++){
    $testo.=substr($txt,($i*$dividi),$dividi)."\n";
    }
    Ciao!

Regole di scrittura

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