Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Creare testo da funzione con GD

    Ciao a tutti, sto cercando di capire le funzioni in php ma proprio non ce la faccio.

    in pratica vorrei creare una funzione che crea un'immagine con le gd library dove di default il testo è null, per interderci "senza testo". quindi quando io vado a fare l'output dell'immagine dovrei fare cosi:

    allora per esempio la funzione si chiama "image" e quindi dovrei fare

    echo image('testo che voglio inserire');

    ma come si fa?

  2. #2
    nessuno mi può dare una mano?

  3. #3
    ho cercato in rete e c'è solo il metodo per richiamare il testo tramite GET, questo vuol dire che è una cosa impossibile da fare?

  4. #4
    imagestring

    o

    imagettftext


    ma il manuale non lo guarda nessuno !!!


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    mi sto studiando giorno per giorno tutto il manuale, il fatto è che non riesco a capire le funzioni!!!

    per esempio io scrivo

    function createsto($testo) {
    //codice per l'immagine
    }

    e per richiamare l'immagine col testo da me specificato dovrei fare cosi o sbaglio?

    echo createsto('Hello world');

    ma come lo vado a definire $testo?

  6. #6
    io ho fatto cosi ma mi stampa "Cannot modify header information"
    immagine.php
    Codice PHP:
    function titolo($testo) {
         
    //Definisco gli array per i font
     
        
    $altezza 40//Definisco l'altezza dell'immagine da creare.
     
        
    $larghezza 80//Definisco la larghezza dell'immagine da creare.
        
        
    $img imagecreate($larghezza$altezza); //Creo l'immagine.
        
        
    $sfondo imagecolorallocate ($img255255255); //Definisco lo sfondo.
        
    $black imagecolorallocate($img151515);
     
        
    $txt_color imagecolorallocate ($img34126191); //Definisco il colore del testo.
         
                
                    
    imagettftext ($img160830$txt_color'verdana'$testo); //Creo il testo.
        
        
            
    header("Content-type: image/jpeg");
        
        
    imagejpeg($img);//Output dell'immagine.
        
    imagedestroy($img) ;

    altra pagina.php

    Codice PHP:
    <?


    require ('Copia di img.php');

    echo 
    titolo('helloworld'); ?>

  7. #7
    nessuno sa darmi una mano?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    No cosi non funziona e fai confusione sia del php sia dell'html

    la funzione require() e' come incude() espande un file ma lo valuta in modo diverso.
    quindi come parametro deve prendere una path di un file esistente e di testo dove c'e' del codice.
    Non ho capito come pensavi di utilizzarlo comunque non so come faccia ad arrivare al cambio dell'header per me dovrebbe fermasi a questa linea.

    L'echo e' una funzione che mette in otuput delle stringhe e non serve per le immagini
    non ti da errore perche' quando fai echo func() quello che viene valutato dall'echo e'
    il ritorno di func() che nel tuo caso e nullo.

    Quindi non ha senso fare
    Codice PHP:
    echo titolo('helloworld'); 
    ma devi fare semplicemente
    Codice PHP:
    titolo('helloworld'); 
    perche' l'immagine viene messa in output da
    Codice PHP:
    imagejpeg($img);//Output dell'immagine. 

    ora passando a una pagina html il tipo di default e' di tipo text/html se vuoi mettere in output
    un immagine nuda e cruda devi cambiare il tipo di header come hai tentato di fare ma va fatto fatto prima di mettere in output qualsiasi cosa e nel tuo caso probabilmente il require ti da problemi.
    Inoltre una volta cambiato tipo di documento non puoi piu usare dell'html.

    Se ho ben capito quello che tu vuoi fare ossia creare una funzione che crei un immagine con del testo da inserire poi in una pagina html devi fare una cosa diversa.
    Questa di seguito funziona se crei una dir tmp dove lavora il file php pero tieni conto
    che cosi crea sempre file nuovi e non li cancella mai.


    Codice PHP:
    <?php 

    function titolo($testo) {
        
    //Definisco gli array per i font
        
    $tmpsubdir 'tmp';
        
    $tmpfname tempnam(getcwd().'/'.$tmpsubdir'img_').".jpg";

        
    $altezza 100//Definisco l'altezza dell'immagine da creare.
        
    $larghezza 400//Definisco la larghezza dell'immagine da creare.

        
    $img imagecreate($larghezza$altezza); //Creo l'immagine.    
        
    $sfondo imagecolorallocate ($img255255255); //Definisco lo sfondo.
        
    $black imagecolorallocate($img151515);

        
    $txt_color imagecolorallocate ($img34126191); //Definisco il colore del testo.
        
    imagestring  ($img  16  8  30  $testo  $txt_color  );

        if (
    imagejpeg$img $tmpfname) == FALSE) {
        
    imagedestroy($img) ;
        return 
    NULL;
        } 
        else  {
        
    imagedestroy($img) ;
            return 
    $tmpsubdir.'/'.basename($tmpfname);
        }
    }



    echo 
    "<html>";
    echo 
    "<body>";

    echo 
    "<img src=\"",titolo("prova titolo"),"\" />";

    echo 
    "
    ciao"
    ;

    echo 
    "</body>";
    echo 
    "</html>";


    ?>

  9. #9
    Intanto grazie mille per la risposta andreamk il codice funziona ma come hai detto te non è "una buona cosa", anche perchè mi crea l'mmagine anche ad un semplice refresh. Peccato sarebbe bello fare una cosa del genere se solo si potesse fare. Allora mi arrendo. Grazie ancora

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    beh certo la crea ogni volta che carichi la pagina non so se ci sia un modo
    per far si che si cancelli il file ogni volta che la sessione dell'utente e' scaduta.
    Comunque il refresh lo si ovvia facendo dei controlli di vario tipo su sessioni aperte o richieste precedenti bisogna lavorarci un po su.

    Il punto e' perche' tu vuoi creare un immagine con un testo.
    Se ad esempio devi fare un sito che crea immagini con testi particolari a disposizione degli utenti
    che hanno una form in cui mettono un testo e gli viene restituito il risultato questa e' la strada.
    Certo parallelamente a questo devi far girare processi che ripuliscano periodicamente la dir tmp.

    Andrea

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.