Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#从嵌入式HTML资源中访问嵌入式图像_C#_Resources_Webbrowser Control - Fatal编程技术网

C#从嵌入式HTML资源中访问嵌入式图像

C#从嵌入式HTML资源中访问嵌入式图像,c#,resources,webbrowser-control,C#,Resources,Webbrowser Control,我希望在VS2013 C#WinForms应用程序中有两个嵌入式资源 一个是JPG文件:嵌入它非常简单 另一个是HTML文件(也很容易嵌入),但正是HTML的内容让我感到满足。HTML正文需要引用嵌入的JPG文件作为资源: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <titl

我希望在VS2013 C#WinForms应用程序中有两个嵌入式资源

一个是JPG文件:嵌入它非常简单

另一个是HTML文件(也很容易嵌入),但正是HTML的内容让我感到满足。HTML正文需要引用嵌入的JPG文件作为资源:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8" />
  <title></title>
</head>
<body>
  <image src=".... **reference that embedded JPG here**" />
</body>
</html>

目标是能够在WebBrowser控件中显示仅由图像内容组成的HTML文件,而不需要独立于应用程序资源存储任何一个文件

我在这里看到了一些引用WebForms的其他答案,但对这项任务没有任何帮助

非常感谢您的帮助

杰夫W


阅读,PA

您可以对图像进行base-64编码,并将其转换为HTML或CSS。旧浏览器(我想是IE8之前的版本吧?)不支持它,但如果不是这样,你就可以开始了。以下是如何做到这一点:

否则,您只需要在存储的HTML中放置一个占位符,并将其与base-64编码的图像交换

HTML


指向映像的base64表示形式的数据uri?资源有res://协议,但不确定它是否适用于托管资源。是否有一个作为MHT的单一资源?(网页单张)?Alex,这是一个关于MHT文件的有趣想法。我得调查一下。谢谢这与Alex之前发布的内容几乎相同,只是他的方法(使用IE将文件保存为MHT)自动化了编码。事实证明,亚历克斯的解决方案是有效的(因为该项目的最低要求是IE9),所以我认为这一问题已经结束。谢谢大家@JeffWoods资源嵌入MHT将在WinXP和Win7中工作,但在Win10中不工作(它将显示空白白页)。因此,最好的方法是在单个.html文件中使用base64图像。
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8" />
  <title></title>
</head>
<body>
  <image src="data:image/gif;base64,{0}" /> <!-- Replace here -->
</body>
</html>
var html = GetStringResource(); // However you do it.
var imageData = GetImageResource(); // Ditto
var encoded = GetBase64FromBinary(imageData); // TODO
var finalHtml = string.Format(html, encoded);