在 WebBrowser 控件上的 HTML 内嵌入资源图像
Embed resource image inside HTML on WebBrowser control
我正在将资源图像填充到 WebBrowser 控件上的 HTML table 中。到目前为止,我可以使用下面列出的函数将图像转换为字节,但无法将内存流转换为 HTML:
Dim imgBase64 As String = Convert.ToBase64String(BmpToBytes_MemStream(My.Resources.myimage))
Dim str1 as String = ""
str1 += ("<table class=" & """" & "mycssclass" & """" & " Align=center>")
str1 += ("<caption><b>My Caption</b></caption>")
str1 += "<tr><td><iframe width=100% height=100% src=imgBase64></iframe></td></tr>"
str1 += ("</table>")
WebBrowser1.Refresh()
WebBrowser1.DocumentText = str1
下面是图像BMP转字节函数:
Private Function BmpToBytes_MemStream(ByVal bmp As Bitmap) As Byte()
Return new ImageConverter().ConvertTo(bmp, GetType(byte()))
End Function
HTML 中有一个将 pdf 加载到 IFRAME 的示例,如下所示:
$"<iframe width=100% height=500 src=""data:Application/pdf;base64,{pdfBase64}"">"
但是,我不确定在 HTML 中的 IFRAME 中显示 Base64 图像所需的确切语法。另外,是否需要“$”字符?
感谢@Jimi 的评论,我想将讨论浓缩为一个有效的答案。
在您的代码中的某处添加以下函数:
Private Function BmpToBytes_MemStream(ByVal bmp As Bitmap) As Byte()
Return New ImageConverter().ConvertTo(bmp, GetType(Byte()))
End Function
接下来,将资源图像(这是一个名为myimage.png的png图像)转换为Base64:
Dim myimage64 As String = Convert.ToBase64String(BmpToBytes_MemStream(My.Resources.myimage))
最后,将转换后的图像嵌入 HTML 代码中,例如:
Dim str1 as String = ""
str1 += "<table class=" & """" & "mycssclass" & """" & " Align=center>"
str1 += "<caption><b>My Caption</b></caption>"
str1 += "<tr><td>$"<img src = ""data:image/png;base64,{myimage64}"">"</td></tr>"
str1 += ("</table>")
WebBrowser1.Refresh()
WebBrowser1.DocumentText = str1
我正在将资源图像填充到 WebBrowser 控件上的 HTML table 中。到目前为止,我可以使用下面列出的函数将图像转换为字节,但无法将内存流转换为 HTML:
Dim imgBase64 As String = Convert.ToBase64String(BmpToBytes_MemStream(My.Resources.myimage))
Dim str1 as String = ""
str1 += ("<table class=" & """" & "mycssclass" & """" & " Align=center>")
str1 += ("<caption><b>My Caption</b></caption>")
str1 += "<tr><td><iframe width=100% height=100% src=imgBase64></iframe></td></tr>"
str1 += ("</table>")
WebBrowser1.Refresh()
WebBrowser1.DocumentText = str1
下面是图像BMP转字节函数:
Private Function BmpToBytes_MemStream(ByVal bmp As Bitmap) As Byte()
Return new ImageConverter().ConvertTo(bmp, GetType(byte()))
End Function
HTML 中有一个将 pdf 加载到 IFRAME 的示例,如下所示:
$"<iframe width=100% height=500 src=""data:Application/pdf;base64,{pdfBase64}"">"
但是,我不确定在 HTML 中的 IFRAME 中显示 Base64 图像所需的确切语法。另外,是否需要“$”字符?
感谢@Jimi 的评论,我想将讨论浓缩为一个有效的答案。
在您的代码中的某处添加以下函数:
Private Function BmpToBytes_MemStream(ByVal bmp As Bitmap) As Byte()
Return New ImageConverter().ConvertTo(bmp, GetType(Byte()))
End Function
接下来,将资源图像(这是一个名为myimage.png的png图像)转换为Base64:
Dim myimage64 As String = Convert.ToBase64String(BmpToBytes_MemStream(My.Resources.myimage))
最后,将转换后的图像嵌入 HTML 代码中,例如:
Dim str1 as String = ""
str1 += "<table class=" & """" & "mycssclass" & """" & " Align=center>"
str1 += "<caption><b>My Caption</b></caption>"
str1 += "<tr><td>$"<img src = ""data:image/png;base64,{myimage64}"">"</td></tr>"
str1 += ("</table>")
WebBrowser1.Refresh()
WebBrowser1.DocumentText = str1