다음을 통해 공유


InkManager.SaveAsync(IOutputStream) 메서드

정의

참고

XAML(Extensible Application Markup Language)을 사용하는 유니버설 Windows 앱의 경우 InkManager 대신 InkPresenterInkCanvas 컨트롤을 사용하는 것이 좋습니다.

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 필요) 개체를 지정할 수 있습니다.

반환

IAsyncOperationWithProgress<UInt32,UInt32>

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)은 잉크의 가장 압축된 영구 표현입니다. 압력, 너비, 색, 기울기, 트위스트 등과 같은 다양한 잉크 속성을 유지하면서 이진 문서 형식 내에 포함하거나 클립보드에 직접 배치할 수 있습니다.

적용 대상

추가 정보