Image Windows 8.1以字符串形式存储xaml save InkManager

Image Windows 8.1以字符串形式存储xaml save InkManager,image,xaml,windows-store-apps,drawing,windows-8.1,Image,Xaml,Windows Store Apps,Drawing,Windows 8.1,我试图将我用铅笔画的东西保存为字符串,我使用SaveAsync()方法将其放入一个IOutputStream中,然后使用AsStreamForWrite()方法将这个IOutputStream转换为一个流。从这一点上说,事情应该会好起来,但是在这一部分之后,我会遇到很多问题,例如,如果我使用以下代码块: using (var stream = new MemoryStream()) { byte[] buffer = n

我试图将我用铅笔画的东西保存为字符串,我使用SaveAsync()方法将其放入一个IOutputStream中,然后使用AsStreamForWrite()方法将这个IOutputStream转换为一个流。从这一点上说,事情应该会好起来,但是在这一部分之后,我会遇到很多问题,例如,如果我使用以下代码块:

  using (var stream = new MemoryStream())
                {
                    byte[] buffer = new byte[2048]; // read in chunks of 2KB
                   int bytesRead = (int)size;
                    while (bytesRead < 0)
                    {
                        stream.Write(buffer, 0, bytesRead);

                    }
                    byte[] result = stream.ToArray();
                    // TODO: do something with the result
                }
或者,如果我尝试使用InMemoryRandomAccessStream将流转换为图像,如下所示:

 InMemoryRandomAccessStream ras = new InMemoryRandomAccessStream();
                await s.CopyToAsync(ras.AsStreamForWrite());
InMemoryRandomAccessStream变量的大小始终为零

也试过

StreamReader.ReadToEnd();

但是它返回一个空字符串。

在这里找到了答案:


您是否从上面的链接实现了
WriteInk()
方法?如果是,调用
WriteInk()
的方法的签名是什么
WriteInk()
wait m_InkCanvas.SaveAsync(流)之后失败StreamReader.ReadToEnd();
private async void ReadInk(string  base64)
{
if (!string.IsNullOrEmpty(base64))
{
    var bytes = Convert.FromBase64String(base64);

    using (var inMemoryRAS = new InMemoryRandomAccessStream())
    {
        await inMemoryRAS.WriteAsync(bytes.AsBuffer());
        await inMemoryRAS.FlushAsync();
        inMemoryRAS.Seek(0);

        await m_InkManager.LoadAsync(inMemoryRAS);

        if (m_InkManager.GetStrokes().Count > 0)
        {
            // You would do whatever you want with the strokes
            // RenderStrokes(); 
        }
    }
}
}