网页上未显示的图片仅显示来源

时间:2018-01-26 20:14:08

标签: asp.net vb.net

我正在尝试动态显示带有文字的图像。有很多这样的例子,即Write Text On An Image in c#

暂时这是视觉工作室唯一生成空winform页面的东西。 但无论使用何种技术,我都会继续得到相同的结果,所以可能是我的页面存在问题?

我的输出页面显示如下:

 <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="index.aspx.vb" Inherits="testtext.index" %>
<!DOCTYPE html>

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head><title>

 </title></head>
 <body>
 <form method="post" action="./index.aspx" id="form1">
 <div class="aspNetHidden">
 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="G30FF0+ZAHGhkQJeBgR+oRS6OrykggI6KG2KLa2Mf0lna5zKb83yvLWtkQfnBa4AEDqKkttFuBoZ1lWeDcgqUpLSg0hHsyoD0paxcB2U0Js=" />
</div>

<div>

        <p><img src="data:image/PNG;Base64, �PNG���
 IHDR���5������9堢���sRGB�������gAMA����
 �a���  pHYs�������o�d����IDATHKՓ��0�;�9Nvq�lb����D�     />
</div>

 <div class="aspNetHidden">

<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="90059987" />
 </div></form>
 </body>
 </html>

我的代码如下所示:

 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtmstrong textl">
 <head runat="server">
 <title></title>
 </head>
 <body>
 <form id="form1" runat="server">
 <div>
  <%Dim cls = New testtext.clsUtil %>
        <p><img src="data:image/PNG;Base64, <%cls.MakeImage("Testing") %>" />
 </div>
 </form>
 </body>
 </html>

函数.MakeImage结束如下:

        '// SET ALIGNMENT
    Dim format As StringFormat = New StringFormat
    format.LineAlignment = StringAlignment.Center

    '// DRAW THE FONT
    Dim oMemStream As MemoryStream = New MemoryStream
    g.DrawString(Text, oFont, fgBrush, rectF, format)
    System.Web.HttpContext.Current.Response.ContentType = "image/png"
    img.Save(oMemStream, ImageFormat.Png)
    oMemStream.WriteTo(System.Web.HttpContext.Current.Response.OutputStream)

    '// CLEAN UP
    img.Dispose()
    Return Nothing
End Function

函数.MakeImage似乎正常工作返回图像但遗憾的是没有显示图片。

你能看出我做错了吗?

1 个答案:

答案 0 :(得分:1)

两件事: 您的输出不是base64编码的,并且您列出的页面输出在src =“...

上没有结束双引号

如果您需要有关如何解决的代码,请与我们联系。首先处理base64,以防当前输出搞乱页面输出。

干杯!

补充:

使用Convert.ToBase64String(bytes)将您的字节编码为Base64字符串。

或者,如果您想继续将字节返回给客户端,请考虑将图像URL放在src=“/images.ashx/testing"之内,然后设置ASHX处理程序来调用图像生成函数。您可以返回没有编码的字节。