conversione testo in immagine

pepemusic

Nuovo Utente
25 Mar 2013
8
0
0
salve a tutti sono nuovo del forum e spero tanto di poter trovare aiuto, sicuramente qui ne sapete molto più di me e quindi confido in voi, mi scuso in anticipo se commetto degli errori in base alle regole del forum...
sul mio sito ho esigenza di far visualizzare del testo dinamico ma mi interessa renderlo tipo immagine, dopo tantissime ricerche sono riuscito a trovare questo script ma non riesco in nessun modo ad evitare il <textarea>, mi spiego:
vorrei che il valore di una variabile venga elaborata dallo script, come faccio?
vi posto lo script, vi prego aiutatemi che sto diventando scemo
HTML:
<style type='text/css'>
canvas{
border: 1px black solid;
}
#textCanvas{
display: none;
}
</style>


<script type='text/javascript'>//<![CDATA[ 
window.onload=function(){
var tCtx = document.getElementById('textCanvas').getContext('2d'),
imageElem = document.getElementById('image');

document.getElementById('testo').addEventListener('keyup', function (){
tCtx.canvas.width = tCtx.measureText(this.value).width;
tCtx.fillText(this.value, 0, 10);
imageElem.src = tCtx.canvas.toDataURL();
console.log(imageElem.src);
}, false);

}//]]> 
</script>


<canvas id='textCanvas' height='20'></canvas>
<img id='image'>
<br>
<textarea id="testo"></textarea>
 
Ultima modifica di un moderatore:

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao, non ho capito, vorresti il testo tipo immagine o vuoi fare elaboarare il valore di una variabile?
 

pepemusic

Nuovo Utente
25 Mar 2013
8
0
0
Ciao, non ho capito, vorresti il testo tipo immagine o vuoi fare elaboarare il valore di una variabile?

Si, praticamente lo script che ho inviato fa proprio questo, solo che per attivare la funzione javascript, in questo caso devo prima digitare nel textarea, ed in questo caso la variabile sarebbe l'ID="testo"... io invece nella pagina che sto realizzando, ottengo una variabile da uno script ASP che prende i dati da un database, quindi vorrei combinare questo script ma non riesco ad attivare la function javascript... per farla facile, facciamo finta che non c'è il textarea ma una variabile tipo var testo="quello che voglio convertire" come fareste voi a farlo funzionare?

spero propio che qualcuno mi indichi la luce in fondo al tunnel
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, puoi fare cosi
HTML:
<script type='text/javascript'>
    window.onload=function(){
        
        var testo = "Testo";
        
        var tCtx = document.getElementById('textCanvas').getContext('2d'),
        imageElem = document.getElementById('image');        
        tCtx.canvas.width = tCtx.measureText(testo).width;
        tCtx.fillText(testo, 0, 10);
        imageElem.src = tCtx.canvas.toDataURL();
        console.log(imageElem.src);
   }
</script>
 

pepemusic

Nuovo Utente
25 Mar 2013
8
0
0
Ciao, puoi fare cosi
HTML:
<script type='text/javascript'>
    window.onload=function(){
        
        var testo = "Testo";
        
        var tCtx = document.getElementById('textCanvas').getContext('2d'),
        imageElem = document.getElementById('image');        
        tCtx.canvas.width = tCtx.measureText(testo).width;
        tCtx.fillText(testo, 0, 10);
        imageElem.src = tCtx.canvas.toDataURL();
        console.log(imageElem.src);
   }
</script>

provo subito, grazie
 

pepemusic

Nuovo Utente
25 Mar 2013
8
0
0
Altro piccolo quesito.

Grazie a criric ho risolto il precedente problema, anzi!
adesso però mi sono accorto che il testo della variabile viene riprodotto solo in orizzontale, tutto su un unica riga, come faccio ad indicare che deve andare a capo ad un tot di caratteri?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
diciamo che oggi tendo in generale a complicarmi la vta ( sarà per il tempo )
puoi provare questa soluzione
HTML:
<style type='text/css'>
    canvas{
        border: 1px black solid;
    }
    #textCanvas{
        display: none;
    }
</style>

<canvas id='textCanvas'></canvas>
<img src="" id='image' alt="image">

<script type='text/javascript'>
    window.onload=function(){
        
        var testo = "Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura che' la diritta via era smarrita.";
        testo += " Ahi quanto a dir qual era e' cosa dura esta selva selvaggia e aspra e forte che nel pensier rinova la paura!";
        
        var tCtx = document.getElementById('textCanvas').getContext('2d');
        imageElem = document.getElementById('image');        
        tCtx.canvas.width = tCtx.measureText(testo).width;
        
        var acapo = 7; // ogni quante parole deve iniziare una nuova riga
        var conta = 0; // contiamo le parole
        var riga = ""; // riga da stampare
        var h = 10; // altezza riga
        var parole = testo.split(" "); // esplode il testo in un array di parole
        // ciclo dell array
        for(var i in parole) {
            // ricostruiamo la riga
            riga += parole[i] + " ";
            // incrementiamo il contatore
            conta++;
            // se è ora di andare a capo
            if(conta == acapo) {
                // stampiamo la riga
                tCtx.fillText(riga, 0, h);
                // azzeriamo i parametri
                riga = "";
                conta=0;
                // incrementiamo l'altezza
                h+=10;
            }          
        }
        // stampiamo l'ultima riga
        tCtx.fillText(riga, 0, h);
        
        imageElem.src = tCtx.canvas.toDataURL();
    }
</script>
ho commentato non credo servano altre spiegazione al massimo chiedi pure
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Internet explorer pero non supporta il canvas percio non funziona
 

pepemusic

Nuovo Utente
25 Mar 2013
8
0
0
Perfetto!!!

diciamo che oggi tendo in generale a complicarmi la vta ( sarà per il tempo )
puoi provare questa soluzione
HTML:
<style type='text/css'>
    canvas{
        border: 1px black solid;
    }
    #textCanvas{
        display: none;
    }
</style>

<canvas id='textCanvas'></canvas>
<img src="" id='image' alt="image">

<script type='text/javascript'>
    window.onload=function(){
        
        var testo = "Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura che' la diritta via era smarrita.";
        testo += " Ahi quanto a dir qual era e' cosa dura esta selva selvaggia e aspra e forte che nel pensier rinova la paura!";
        
        var tCtx = document.getElementById('textCanvas').getContext('2d');
        imageElem = document.getElementById('image');        
        tCtx.canvas.width = tCtx.measureText(testo).width;
        
        var acapo = 7; // ogni quante parole deve iniziare una nuova riga
        var conta = 0; // contiamo le parole
        var riga = ""; // riga da stampare
        var h = 10; // altezza riga
        var parole = testo.split(" "); // esplode il testo in un array di parole
        // ciclo dell array
        for(var i in parole) {
            // ricostruiamo la riga
            riga += parole[i] + " ";
            // incrementiamo il contatore
            conta++;
            // se è ora di andare a capo
            if(conta == acapo) {
                // stampiamo la riga
                tCtx.fillText(riga, 0, h);
                // azzeriamo i parametri
                riga = "";
                conta=0;
                // incrementiamo l'altezza
                h+=10;
            }          
        }
        // stampiamo l'ultima riga
        tCtx.fillText(riga, 0, h);
        
        imageElem.src = tCtx.canvas.toDataURL();
    }
</script>
ho commentato non credo servano altre spiegazione al massimo chiedi pure

In effetti oggi il tempo non è dei migliori, ma ormai a breve arriverà il bel tempo...
Tornando allo script, con questa soluzione ho risolto tutti i miei problemi, sei stato gentilissimo e di graaaaandissimo aiuto, la tua disponibilità spero ti venga ripagata nella vita...
grazie ancora
 
Discussioni simili
Autore Titolo Forum Risposte Data
D conversione di una data da formato numero a formato testo Javascript 7
R mysql stored procedure (conversione testo in nome campo) Database 1
felino Conversione da MPG a MP4: audio non sincronizzato Windows e Software 1
elpirata Funzione conversione da minuti in ore Javascript 0
M conversione excel javascript Javascript 0
G Conversione da VB6 a PHP PHP 8
L [Java] Errore json conversione Java 0
N [PHP] Conversione di un numero in ore PHP 2
A Conversione Codice da mysql a mysqli Database 1
M [Flash] Problemi conversione formato swf Flash 20
A Conversione da mysql_connect a mysqli_connect PHP 0
zorro [PHP] Conversione PDF-JPG PHP 6
S [MySQL] Conversione dati e copia in in altra colonna MySQL 8
L Conversione date ed estrazione PHP 0
C Programma di conversione da Immagine a PDF Windows e Software 5
X Conversione funzione php PHP 0
L conversione codice da js a js jquery jQuery 3
C Conversione data in formato MySql Classic ASP 1
felino Libreria PHP per conversione da Json a CSV PHP 4
F conversione codice javascript in jquery Javascript 1
Z Conversione codice da visual basic a visual.... .NET Framework 1
A Conversione immagine base64 Javascript 0
M Conversione MDB --> MySQL MySQL 9
T [risolto] Conversione comandi da javascript a jquery. Chi può aiutarmi? Javascript 4
T [risolto] Conversione stringa in utf Javascript 2
O Conversione C++ - Php C/C++ 4
J Conversione servizio Aruba Hosting 1
A Conversione data PHP 1
N Conversione plurale-singolare PHP 2
B Consiglio per servizi di conversione PSD/immagini --> HTML Webdesign e Grafica 0
L conversione data da eng a ita PHP 2
A conversione utf-8 verso ANSI PHP 0
A E' arrivato Replo, l'eroe della conversione! Presenta il tuo Sito 0
M [C#]conversione stringa esadecimale a array di byte .NET Framework 4
PUMPKINprods Aiuto conversione da windows a linux Hosting 0
F Modifiche sito per conversione da hosting windows a linux Hosting 0
M Conversione Caratteri speciali per URL PHP 6
T problema conversione .NET Framework 1
I [XML - XSLT] Conversione XML PDF XML 0
S Tool di conversione dollaro-euro Presenta il tuo Sito 1
F Conversione valuta PHP 2
P Sostituzione stringhe sulla base di una tabella di conversione MySQL 2
L problema conversione caratteri fck editor PHP 1
R Conversione file Programmazione 0
D Conversione PDF to JPEG Classic ASP 1
C Aiuto per conversione codice! PHP 1
M [Visual Basic] Conversione XLS in PDF, urgente! Programmazione 2
G Funzione di conversione stringa in data PHP 0
P conversione report di access in word MS Access 2
PoLe Conversione Stringa Programmazione 2

Discussioni simili