Canvas

przez 3 współtwórców

Ogólne informacje o używaniu <canvas> znajdują się w przewodniku.

Zapisywanie obrazu canvas do pliku

Poniższa funkcja akceptuje obiekt canvas i ścieżkę pliku docelowego. Canvas jest konwertowany do pliku PNG i jest zapisywany do określonej lokalizacji. Funkcja wyświetla okno procesu pobierania plików, lecz okno może być usunięte.

function saveCanvas(canvas, destFile) {
  // konwertuje łańcuch znaków ścieżki pliku string do nsIFile
  var file = Components.classes["@mozilla.org/file/local;1"]
                       .createInstance(Components.interfaces.nsILocalFile);
  file.initWithPath(destFile);

  // stwórz adres url danych z canvas, a następnie stwórz URI źródła i celu  
  var io = Components.classes["@mozilla.org/network/io-service;1"]
                     .getService(Components.interfaces.nsIIOService);
  var source = io.newURI(canvas.toDataURL("image/png", ""), "UTF8", null);
  var target = io.newFileURI(file)
  
  // przygotuj do zapisu dane
  var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"]
                          .createInstance(Components.interfaces.nsIWebBrowserPersist);
  
  persist.persistFlags = Components.interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_REPLACE_EXISTING_FILES;
  persist.persistFlags |= Components.interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION;
  
  // wyświetl dialog pobierania pliku (usuń poniższe 3 linie, by go pominać)
  var xfer = Components.classes["@mozilla.org/transfer;1"]
                       .createInstance(Components.interfaces.nsITransfer);
  xfer.init(source, target, "", null, null, null, persist);
  persist.progressListener = xfer;
  
  // zapisz dane canvas do pliku
  persist.saveURI(source, null, null, null, null, file);
}



Autorzy i etykiety dokumentu

Contributors to this page: Mgjbot, Bedi, Ptak82
Ostatnia aktualizacja: Mgjbot,