InkManager.SaveAsync(IOutputStream) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
참고
XAML(Extensible Application Markup Language)을 사용하는 유니버설 Windows 앱의 경우 InkManager 대신 InkPresenter 및 InkCanvas 컨트롤을 사용하는 것이 좋습니다.
InkManager에서 관리하는 InkStroke 컬렉션의 모든 InkStroke 개체를 지정된 스트림에 비동기적으로 저장합니다.
잉크 데이터는 INK ISF(직렬화된 형식) 메타데이터로 직렬화되고 GIF(Graphics Interchange Format) 파일에 포함됩니다.
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 필요) 개체를 지정할 수 있습니다.
반환
Windows.Foundation.IAsyncOperationWithProgress<unsigned int,unsigned int>
IAsyncOperationWithProgress<uint32_t,uint32_t>
저장된 스트림의 크기 및 비동기 작업의 상태 전송된 바이트 수입니다. 자세한 내용은 WriteAsync 메서드를 참조하세요.
구현
- 특성
예제
이 예제의 함수는 saveStrokes
다음 방법을 보여 줍니다.
- FileSavePicker 개체를 사용하여 파일 형식이 GIF(그래픽 교환 형식) 형식으로 제한되는 파일 저장 화면을 표시합니다.
- OpenAsync 메서드를 통해 출력 스트림을 설정합니다.
- InkManager 개체(
inkManager
)의 SaveAsync 메서드를 사용하여 잉크 데이터를 출력 스트림으로 직렬화하고 GIF(Graphics Interchange Format) 파일(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 파일 내에서 잉크 콘텐츠를 전송하고 잉크 및 잉크가 아닌 애플리케이션에서 사용할 수 있도록 하는 데 이상적입니다.
참고
잉크 직렬화된 형식(ISF)은 잉크의 가장 압축된 영구 표현입니다. 압력, 너비, 색, 기울기, 트위스트 등과 같은 다양한 잉크 속성을 유지하면서 이진 문서 형식 내에 포함하거나 클립보드에 직접 배치할 수 있습니다.