C#从嵌入式HTML资源中访问嵌入式图像
我希望在VS2013 C#WinForms应用程序中有两个嵌入式资源 一个是JPG文件:嵌入它非常简单 另一个是HTML文件(也很容易嵌入),但正是HTML的内容让我感到满足。HTML正文需要引用嵌入的JPG文件作为资源: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
<!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);