Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Salvare i canvas

  1. #1

    Salvare i canvas

    Con calma, sto cercando di costruire un piccolo sistema grafico: su un canvas mettere fotografie, disegni e successivamente mi interesserò di scritte, per poi salvare il tutto in formato grafico standard (PNG, o quel che si potrà fare).
    Qualcuna delle mi prove è visibile in questa pagina: http://www.coalize.it/graphic.php
    Gran parte del merito non è mio, ma del gruppo fabricjs attivo su Google groups.
    Il problema è sul salvataggio: esistono librerie grafiche in JS che però non funzionano con i browsers Microsoft che forniscono il messaggio:
    codice:
    SCRIPT122: Area dati passata ad una chiamata al sistema troppo piccola.
    Ora, ho trovato qualcuno che passa le informazioni tramite FORM, ma questo form è creato con javascript e purtroppo io lo capisco poco. Questo è il form che ho messo sul pulsante "Finalizza"
    codice:
    <form name="base64img_form" method="post" onsubmit="savecanvasfile()">
    <input type="submit" name="base64img_data" value="Finalizza" />
    </form>
    La funzione JS savecanvasfile fa così:
    codice:
    function savecanvasfile() {
    	canvas.discardActiveObject().renderAll(); // disabilita la selezione di "fabric"
    	var base64img = canvas.toDataURL('image/png'); // base64img contiene la trasformazione (lunga) in immagine
    // base64img si presenta nel formato data:image/png;base64,iVBORr0wKGo...
    	document.forms["base64img_form"].base64img_data.value=base64img; // definisce il finto form
    	var attributes = new Array();
    	attributes['base64img_data'] = base64img;
    	post_to_url('<?=$PHP_SELF?>', attributes);
    Ma la cosa che proprio non capisco è post_to_url, derivato da questa discussione
    Come faccio, se qualcuno lo sa dire, ad aggiungere eventualmente un secondo input hidden?
    Mi serve per passare le due variabili (immagine canvas e un nome file) a una procedura PHP.
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di strae
    Registrato dal
    Apr 2008
    Messaggi
    407
    Usa jQuery, fai una richiesta ajax e sei a posto.
    Il metodo base64 funziona a meraviglia!

    Devo ringraziarti per avermi fatto conoscere fabric.js, sembra molto potente, io fin'ora ho lavorato con paper.js perchè tutti ne parlavano bene ma spulciando le funzionalità di fabric devo dire che la metà delle aggiunte che ho dovuto fare a paper sono già presenti.
    You HAVE to assume your visitor is a maniac serial killer, out to destroy your application. And you have to prevent it.
    I can accept failure, everyone fails at something - But I can't accept not trying.

  3. #3
    Grazie: il problema è però che non posso mettere una lunga stringa nel richiamo di pagina Internet Explorer, non è il funzionamento della conversione.
    Ho comunque visto (pur conoscendo molto poco JS) che non serve affatto la routine di cui accennavo per inviare un POST da form.
    Qui ( http://www.coalize.it/motb.php ) si può vedere una soluzione che più o meno funziona.

  4. #4
    Utente di HTML.it L'avatar di strae
    Registrato dal
    Apr 2008
    Messaggi
    407
    Originariamente inviato da jumborex
    Grazie: il problema è però che non posso mettere una lunga stringa nel richiamo di pagina Internet Explorer, non è il funzionamento della conversione.
    Ho comunque visto (pur conoscendo molto poco JS) che non serve affatto la routine di cui accennavo per inviare un POST da form.
    Qui ( http://www.coalize.it/motb.php ) si può vedere una soluzione che più o meno funziona.
    questo plugin per jquery invia il form tramite ajax, senza ricaricare la pagina.

    È molto semplice da usare
    You HAVE to assume your visitor is a maniac serial killer, out to destroy your application. And you have to prevent it.
    I can accept failure, everyone fails at something - But I can't accept not trying.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.