Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Gamma
    Registrato dal
    Sep 2002
    Messaggi
    145

    html5 Canvas + salvare file con asp.net

    Salve a tutti..
    Ho l'esigenza di salvare l'immagine che riesco a creare con il tag html5 <canvas> direttamente come file fisico o come image all'interno di un database:

    con la seguente funzione js recupero i dati relativi all'immagine creata al volo
    codice:
    function saveCanvas() 	{
    var testCanvas = document.getElementById("canvas");
    var canvasData = testCanvas.toDataURL("image/png");
    var results = document.getElementById("results");
    var postData = "Data="+canvasData;
    var ajax = new XMLHttpRequest();
    ajax.open("POST",'canvas_salva.aspx',true);
    ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');     ajax.onreadystatechange=function(){
    if (ajax.readyState == 4){
    results.innerHTML = ajax.responseText; 		}
    }     ajax.send(postData);
    }
    nella mia pagina .net recupero i dati che ho appena recuperato


    codice:
    <%@Page language="vb" Debug="true" %>
    <% dim canvasData as string dim arr_canvas   canvasData = request.form("Data")  response.write (canvasData)  %>
    credo, però, di dovere decodificare da base64....chi mi aiuta?
    La VERTENZA é NULLA senza CONTRATTO

  2. #2
    Prova in questo modo :


    codice:
    System.Text.Encoding enc = System.Text.Encoding.ASCII;
    byte[] responseArray = enc.GetBytes(canvasData);
    
    Response.ContentType = "image/jpeg";
    Response.BinaryWrite(responseArray);

    Se ti da qualche errore che lascia pensare ad un problema di codifica , o ti ritorna un'immagine artefatta , allora prova a cambiare la codifica in UTF8 in questo modo

    codice:
    System.Text.Encoding enc = System.Text.Encoding.UTF8;  // cambia solo la codifica
    byte[] responseArray = enc.GetBytes(canvasData);
    
    Response.ContentType = "image/jpeg";
    Response.BinaryWrite(responseArray);
    Prova e fammi sapere se funziona , altrimenti proviamo una'altra soluzione.
    Sul mio blog qualche utile risorsa per JQuery, HTML5 , CSS3 , PHP , ASP.NET , WCF SERVICE REST & SOAP ed altro ancora http://zannino1973.wordpress.com

  3. #3
    Utente di HTML.it L'avatar di Gamma
    Registrato dal
    Sep 2002
    Messaggi
    145
    Prima di tutto, grazie per aver risposto

    In effetti, col tuo suggerimento, ottengo una stringa che inizia con
    data:image/png;base64,iVBORw0KGgoAAAANSUhE(......) e si allunga in base alla dimensione dell'immagine creata.
    La cosa che mi chiedo ora è se posso salvare direttamente sul campo image del db la stringa ottenuta o devo manipolare ulteriormente la 'cosa'...
    La VERTENZA é NULLA senza CONTRATTO

  4. #4
    Utente di HTML.it L'avatar di Gamma
    Registrato dal
    Sep 2002
    Messaggi
    145
    Ho modificato il file aspx così:
    codice:
    if instr(canvasData," ")>0 then
    canvasData = replace(canvasData," ","+")
    end if
    Dim enc As System.Text.Encoding = System.Text.Encoding.UTF8
    Dim responseArray As Byte() = enc.GetBytes(canvasData)
    Response.ContentType = "image/png"
    Response.BinaryWrite(responseArray)
    praticamente l'unica cosa che ho dovuto modificare è stato il replace degli spazi vuoti...e l'immagine si vede perfettamente!
    La VERTENZA é NULLA senza CONTRATTO

  5. #5
    Certo che la puoi salvare sul campo image del database
    Sul mio blog qualche utile risorsa per JQuery, HTML5 , CSS3 , PHP , ASP.NET , WCF SERVICE REST & SOAP ed altro ancora http://zannino1973.wordpress.com

  6. #6
    Utente di HTML.it L'avatar di Gamma
    Registrato dal
    Sep 2002
    Messaggi
    145
    ora provo grazie mille!!
    La VERTENZA é NULLA senza CONTRATTO

  7. #7
    Utente di HTML.it L'avatar di Gamma
    Registrato dal
    Sep 2002
    Messaggi
    145
    Mi ero dimenticato di segnalare che il tutto funziona a meraviglia
    Grazie
    La VERTENZA é NULLA senza CONTRATTO

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.