Freigeben über


InkManager.SaveAsync(IOutputStream) Methode

Definition

Hinweis

Für universelle Windows-Apps mit Extensible Application Markup Language (XAML) empfehlen wir die Verwendung von InkPresenter und dem InkCanvas-Steuerelement anstelle von InkManager.

Speichert asynchron alle InkStroke-Objekte in der InkStroke-Auflistung , die vom InkManager verwaltet wird, im angegebenen Stream.

Freihanddaten werden als ISF-Metadaten (Ink Serialized Format) serialisiert und in eine GIF-Datei (Graphics Interchange Format) eingebettet.

public:
 virtual IAsyncOperationWithProgress<unsigned int, unsigned int> ^ SaveAsync(IOutputStream ^ outputStream) = SaveAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<uint32_t, uint32_t> SaveAsync(IOutputStream const& outputStream);
/// [Windows.Foundation.Metadata.RemoteAsync]
/// [Windows.Foundation.Metadata.Overload("SaveAsync")]
IAsyncOperationWithProgress<uint32_t, uint32_t> SaveAsync(IOutputStream const& outputStream);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<uint,uint> SaveAsync(IOutputStream outputStream);
[Windows.Foundation.Metadata.RemoteAsync]
[Windows.Foundation.Metadata.Overload("SaveAsync")]
public IAsyncOperationWithProgress<uint,uint> SaveAsync(IOutputStream outputStream);
function saveAsync(outputStream)
Public Function SaveAsync (outputStream As IOutputStream) As IAsyncOperationWithProgress(Of UInteger, UInteger)

Parameter

outputStream
IOutputStream

Der Zieldatenstrom. Stattdessen kann ein IRandomAccessStream-Objekt (erfordert IOutputStream) angegeben werden.

Gibt zurück

IAsyncOperationWithProgress<UInt32,UInt32>

Windows.Foundation.IAsyncOperationWithProgress<unsigned int,unsigned int>

IAsyncOperationWithProgress<uint32_t,uint32_t>

Die Größe des gespeicherten Datenstroms und die status des asynchronen Vorgangs als Anzahl der gesendeten Bytes. Weitere Informationen finden Sie unter WriteAsync-Methode .

Implementiert

Attribute

Beispiele

Die saveStrokes Funktion in diesem Beispiel veranschaulicht Folgendes:

  • Zeigen Sie einen Dateispeicherbildschirm an, in dem der Dateityp mithilfe des FileSavePicker-Objekts auf das GIF-Format (Graphics Interchange Format) beschränkt ist.
  • Richten Sie einen Ausgabestream über die OpenAsync-Methode ein.
  • Verwenden Sie die SaveAsync-Methode eines InkManager-Objekts (inkManager), um die Freihanddaten in einen Ausgabedatenstrom zu serialisieren und sie in eine GIF-DateistorageFile () () einzubetten.
// Save all strokes owned by inkManager.
function saveStrokes()
{
    // Ensure that strokes exist before calling saveAsync.
    if (inkManager.getStrokes().size > 0)
    {
        // Set up the file save screen.
        var savePicker = Windows.Storage.Pickers.FileSavePicker();
        savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
        savePicker.fileTypeChoices.insert("GIF with embedded ISF", [".gif"]);
        savePicker.defaultFileExtension = ".gif";

        // Set up the stream.
        var saveStream = null;

        // Asynchronously save the ink data to the stream.
        savePicker.pickSaveFileAsync().done(
        function (file)
        {
            if (null !== file)
            {
                file.openAsync(Windows.Storage.FileAccessMode.readWrite).then(
                    function (stream)
                    {
                        saveStream = stream;
                        return inkManager.saveAsync(saveStream);
                    }
                ).then(
                    function ()
                    {
                        return saveStream.flushAsync(); 
                    },
                    function (e) {
                        // Override the standard saveAsync error with our own.
                        throw new Error("saveAsync");
                    }
                ).done(
                    function ()
                    {
                        statusMessage.innerText = "Strokes saved as GIF with embedded ISF (.gif).";
                        saveStream.close();
                    },
                    function (e) {
                        statusMessage.innerText = "Save: " + e.toString();
                        // Close the stream if open.
                        if (saveStream) {
                            saveStream.close();
                        }
                    }
                );
            }
        }
    );
    }
    else
    {
        statusMessage.innerText = "No strokes to save.";
    }
}

Hinweise

Durch das Einbetten der Metadaten in eine GIF-Datei (Graphics Interchange Format) können Freihandeingaben in Anwendungen angezeigt werden, die nicht freihandfähig sind, während für Freihandanwendungen die volle Genauigkeit beibehalten wird. Dieses Format eignet sich ideal für den Transport von Freihandinhalten innerhalb einer HTML-Datei und macht sie sowohl für Freihandanwendungen als auch für Nicht-Freihandanwendungen nutzbar.

Hinweis

Das serialisierte Freihandformat (Ink Serialized Format, ISF) ist die kompakteste persistente Darstellung von Freihand. Es kann in ein binäres Dokumentformat eingebettet oder direkt in der Zwischenablage platziert werden, während verschiedene Freihandeigenschaften wie Druck, Breite, Farbe, Neigung, Drehung usw. beibehalten werden.

Gilt für:

Weitere Informationen