Windows 8 如何共享获取的图像?

Windows 8 如何共享获取的图像?,windows-8,windows-runtime,winjs,Windows 8,Windows Runtime,Winjs,我使用responseType“blob”调用WinJS.xhr(),结果.response是一个图像。我如何分享这张照片?DataTransferManager的setBitmap需要streamreference。是否需要将图像记录到临时文件,然后执行Windows.Storage.Streams.RandomAccessStreamReference.createFromFile()?如果是这样,如何将图像写入存储文件?谢谢。您有两个选择: 将文件写入磁盘。有关详细信息,请参阅 从XHR响

我使用responseType“blob”调用WinJS.xhr(),结果.response是一个图像。我如何分享这张照片?DataTransferManager的setBitmap需要streamreference。是否需要将图像记录到临时文件,然后执行
Windows.Storage.Streams.RandomAccessStreamReference.createFromFile()
?如果是这样,如何将图像写入存储文件?谢谢。

您有两个选择:

  • 将文件写入磁盘。有关详细信息,请参阅
  • 从XHR响应创建多用途blob。看

  • 如果只是暂时共享文件,第二个选项可以使您不必将文件写入磁盘,但它会通过一些内存管理来在以后撤销blob。创建URL后,您可以将其分配给an
    img
    tags
    src
    属性。

    如果目标是共享图像而不保存图像,则可以选择此旧问题的答案

    Windows.Storage.Streams.RandomAccessStreamReference.createFromUri(targetImageSrc);
    
    如果要获得相同的结果,请从
    uri
    而不是
    文件创建流


    不过,该功能在当时可能不可用。

    谢谢,多米尼克。将blob写入磁盘的过程似乎很痛苦。我想这就是需要的,对吧?如果你需要把它放到磁盘上,是的。如果您只想在UI中的多个位置使用blob几分钟,或者运行应用程序,但不需要缓存,那么createObjectUrl将为您提供一个可以分配给多个图像标记的URL。我最终不需要将其放到磁盘上。我最终需要将它放到一个与DTM中的e.request.data.setBitmap()方法兼容的流中,以便共享。在你在#2中发给我的链接中,你是说我可以使用“ms stream”响应类型获得一个可以传递到setBitmap()方法的流吗?我想是的,但我不是dtm专家。