Compartilhar via


InkManager.SaveAsync(IOutputStream) Método

Definição

Observação

Para o aplicativo Universal do Windows usando XAML (Extensible Application Markup Language), recomendamos usar InkPresenter e o controle InkCanvas em vez de InkManager.

Salva de forma assíncrona todos os objetos InkStroke na coleção InkStroke que é gerenciada pelo InkManager no fluxo especificado.

Os dados de tinta são serializados como metadados do ISF (Formato Serializado à Tinta) e inseridos em um arquivo GIF (Formato de Intercâmbio Gráfico).

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)

Parâmetros

outputStream
IOutputStream

O fluxo de destino. Um objeto IRandomAccessStream (requer IOutputStream) pode ser especificado.

Retornos

IAsyncOperationWithProgress<UInt32,UInt32>

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

IAsyncOperationWithProgress<uint32_t,uint32_t>

O tamanho do fluxo salvo e o status da operação assíncrona como o número de bytes enviados. Para obter mais informações, consulte Método WriteAsync .

Implementações

Atributos

Exemplos

A saveStrokes função neste exemplo demonstra como:

  • Exiba uma tela de salvamento de arquivo em que o tipo de arquivo é restrito ao formato GIF (Graphics Interchange Format) usando o objeto FileSavePicker .
  • Configure um fluxo de saída por meio do método OpenAsync .
  • Use o método SaveAsync de um objeto InkManager (inkManager) para serializar os dados de tinta em um fluxo de saída e inserê-los em um arquivostorageFile GIF (Formato de Intercâmbio Gráfico).
// 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.";
    }
}

Comentários

Inserir os metadados em um arquivo GIF (Formato de Intercâmbio Gráfico) permite que a tinta seja exibida em aplicativos que não são habilitados para tinta, mantendo a fidelidade total para aplicativos habilitados para tinta. Esse formato é ideal para transportar conteúdo de tinta dentro de um arquivo HTML e torná-lo utilizável por aplicativos de tinta e não à tinta.

Observação

O ISF (Formato Serializado à Tinta) é a representação persistente mais compacta da tinta. Ele pode ser inserido em um formato de documento binário ou colocado diretamente na Área de Transferência, preservando várias propriedades de tinta, como pressão, largura, cor, inclinação, torção e assim por diante.

Aplica-se a

Confira também