次の方法で共有


InkManager.SaveAsync(IOutputStream) メソッド

定義

Note

拡張アプリケーション マークアップ言語 (XAML) を使用するユニバーサル Windows アプリの場合は、InkManager の代わりに InkPresenterInkCanvas コントロールを使用することをお勧めします。

InkManager によって管理されている InkStroke コレクション内のすべての InkStroke オブジェクトを、指定したストリームに非同期的に保存します。

インク データは、インク シリアル化形式 (ISF) メタデータとしてシリアル化され、グラフィックス交換形式 (GIF) ファイルに埋め込まれます。

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)

パラメーター

outputStream
IOutputStream

対象のストリーム。 代わりに 、IRandomAccessStream ( IOutputStream が必要) オブジェクトを指定できます。

戻り値

IAsyncOperationWithProgress<UInt32,UInt32>

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

IAsyncOperationWithProgress<uint32_t,uint32_t>

保存されたストリームのサイズと、送信されたバイト数としての非同期操作の状態。 詳細については、「 WriteAsync メソッド」を参照してください。

実装

属性

この例の 関数は saveStrokes 、次の方法を示しています。

  • FileSavePicker オブジェクトを使用して、ファイルの種類がグラフィックス交換形式 (GIF) 形式に制限されているファイル保存画面を表示します。
  • OpenAsync メソッドを使用して出力ストリームを設定します。
  • InkManager オブジェクト (inkManager) の SaveAsync メソッドを使用して、インク データを出力ストリームにシリアル化し、グラフィックス交換形式 (GIF) ファイル (storageFile) に埋め込みます。
// 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.";
    }
}

注釈

メタデータをグラフィックス交換形式 (GIF) ファイルに埋め込むと、インク対応アプリケーションの完全な忠実性を維持しながら、インク対応ではないアプリケーションでインクを表示できます。 この形式は、HTML ファイル内でインク コンテンツを転送し、インクアプリケーションとインク以外のアプリケーションの両方で使用するのに最適です。

Note

インク シリアル化形式 (ISF) は、インクの最もコンパクトな永続的表現です。 バイナリ ドキュメント形式で埋め込んだり、クリップボードに直接配置したりしながら、圧力、幅、色、傾き、ねじれなどのさまざまなインク プロパティを保持できます。

適用対象

こちらもご覧ください