如何直接从内存中显示webBrowser控件中的图像?

如何直接从内存而不是硬盘在webBrowser控件中显示图像? 当我使用RAM磁盘软件创建虚拟驱动器时,可以像这样加载图像源:img src =“Z:/image.jpg”Z是RAM磁盘驱动器。 是否可以在.NET中以编程方式执行此操作? 或使用MemoryStream来做到这一点?

我真的很感激有关这方面的一些建议。

您可以在base64中对图像进行编码。 例如

My Image data in base 64 

以下是完成此操作的完整示例:

 using System; using System.IO; using System.Runtime.InteropServices; using System.Windows.Forms; namespace ImageEncodedInBase64InAWebBrowser { [ComVisible(true)] public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { string url = Directory.GetCurrentDirectory() + "\\page.html"; webBrowser1.Url = new Uri(url); webBrowser1.ObjectForScripting = this; } private void button1_Click(object sender, EventArgs e) { string imageInBase64 = ReadImageInBase64(); webBrowser1.Document.InvokeScript("setImageData", new[] { imageInBase64 }); } private string ReadImageInBase64() { string imagePath = Directory.GetCurrentDirectory() + "\\opensource.png"; using (var fs = new FileStream(imagePath, FileMode.Open, FileAccess.Read)) { var buffer = new byte[fs.Length]; fs.Read(buffer, 0, (int)fs.Length); return Convert.ToBase64String(buffer); } } } } 

这个Javascript代码:

 function setImageData(imageBase64) { var myImg = document.getElementById("myImg"); myImg.src = "data:image/png;base64," + imageBase64; }