InkManager.SaveAsync(IOutputStream) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
- Interações por caneta
- Introdução: oferecer suporte à tinta em seu aplicativo UWP
- Exemplo de análise de tinta (básico) (C#)
- Exemplo de reconhecimento de manuscrito à tinta (C#)
- Salvar e carregar traços de tinta de um arquivo ISF (Ink Serialized Format)
- Salvar e carregar traços de tinta da área de transferência
- Exemplo de localização e orientação da barra de ferramentas de tinta (básico)
- Exemplo de localização e orientação da barra de ferramentas de tinta (dinâmico)
- Exemplo de livro de colorir
- Exemplo de anotações da família
- Exemplo de escrita à tinta (JavaScript)
- Exemplo de escrita à tinta simples (C#/C++)
- Exemplo de escrita à tinta complexa (C++)
- Exemplo de análise de tinta