2

我有一个 C++/CX 组件,它可以将图像作为流返回(我可以很容易地让它返回一个 IBuffer,如果这让事情变得更容易的话)。目前,组件的返回类型是 IRandomAccessStream,实际流是 InMemoryRandomAccessStream。

我想将此流用作 HTML/JavaScript Windows 8 应用程序中的图像源。问题是我不知道如何将这个流或我可以从中创建的数组推送到图像中。我尝试了一些东西,但例如 URL.createObjectURL 不只需要一个 IRandomAccessStream,它需要一个 IRandomAccessStreamWithContentType。我还尝试使用画布和图像数据(http://www.w3schools.com/tags/canvas_createimagedata.asp)。

我的下一步可能是尝试将我的流包装在 IRandomAccessStreamWithContentType 中,看看我是否可以做到这一点。在 JavaScript 或我的 C++/CX 控件中。

任何有关如何解决此问题的建议将不胜感激。

谢谢,托马斯

4

1 回答 1

0

我之前在 C# 中没有在 C++ 中做过这个,但基础应该是相似的。

  1. 从流中获取字节数组
  2. 将字节数组转换为 Base64String ( Convert.ToBase64String )
  3. 现在您可以直接在图像标签中使用此字符串:

<img src="data:image/png;base64,YOUR_STRING" />

于 2013-01-05T07:33:23.760 回答