我在 an application 中使用 C# 中的 WebBrowser 控件显示 HTML。所有数据都来自数据库,因此我在内存中使用 Inline-CSS 生成一个完整的页面并将其发送到浏览器。
但现在我想支持图像,这似乎是个问题,因为我不想将图像存储在硬盘上,甚至不想存储在临时目录中。我知道 data: URI Scheme ,但这似乎太有限了。
我想知道:我能否以某种方式使用 JavaScript 动态生成图像,给定字节流,本质上是镜像数据:使用 JavaScript 的方案?或者是否有其他方式显示图像,即使用 GDI+?
如果需要,我可以对图像做出一些假设,即如果需要,我可以强制用户指定宽度和高度,但我不能真正强制执行位置,毕竟它是 HTML。我还可以强制所有图像采用特定格式,基本上任何可以帮助解决此问题的格式。
编辑: 我可以滥用像 VML 这样的东西吗?显示位图数据?我不能像看起来那样使用 Canvas 或 SVG(两者在 IE 中不受支持,因此在 MSHTML 中不受支持?)
编辑 2:VML 可以工作,但处理器负载非常大。所以我要么实现一个网络服务器来提供文件(如 cassini),要么尝试 Silverlight approach在我的另一个问题中。
请您参考如下方法:
如果您愿意为您的应用程序增加一层额外的复杂性,那么您可以嵌入一个简单的网络服务器来提供图像。 使用 System.Net.HttpListener您可以设置您的应用程序以按要求提供图像。这应该可行,但它似乎非常骇人听闻......
