InkManager.SaveAsync(IOutputStream) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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
- Zeichen- und Eingabestiftinteraktionen
- Erste Schritte: Unterstützung von Freihand in Ihrer UWP-App
- Freihandanalysebeispiel (basic) (C#)
- Beispiel für die Freihandschrifterkennung (C#)
- Speichern und Laden von Freihandstrichen aus einer ISF-Datei (Ink Serialized Format)
- Speichern und Laden von Freihandstrichen aus der Zwischenablage
- Beispiel für Position und Ausrichtung der Freihandsymbolleiste (Basic)
- Beispiel für Position und Ausrichtung der Freihandsymbolleiste (dynamisch)
- Malbuchbeispiel
- Familiennotizbeispiel
- Freihandbeispiel (JavaScript)
- Einfaches Freihandbeispiel (C#/C++)
- Beispiel für komplexe Freihandeingaben (C++)
- Freihandanalysebeispiel