在asp.net中创建动态图形

时间:2011-09-05 11:54:41

标签: asp.net gdi+

我正忙着在asp.net中创建一个控件。控件由一些文本和图像组成。该图像将用于显示图表。控件通过从数据库中读取数据来获取图表的数据。我似乎有两个选项可以在图像框中显示图形。首先,我可以从数据创建一个jpg并将文件保存在服务器上。然后我可以将此文件加载到图像框中。我认为如果各种用户同时尝试访问该网站会导致问题,所以我认为这不是一个好选择。其他选项是创建一个名为output的文件,它输出如下图:objBitmap.Save(Response.OutputStream, ImageFormat.Gif)

然后我可以在我的控件中显示这样的图像:Image1.ImageUrl = "output.aspx"

我面临的问题是如何将控件中的数据输出到输出页面?据我所知,作为参数传递的数据太多了。如果还有其他更好的方法,请告诉我

由于

2 个答案:

答案 0 :(得分:0)

您可以将图像内容写入output.aspx的响应中。这样的东西(取自我现有的一个GetImage页面:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim strFilename As String

        strFilename = Request.QueryString("filename")

        Dim strPath As String = AppSettings("ProxyImageSavePath") & strFilename

        Response.Clear()
        Response.ContentType = "image/jpeg"

        If Not IO.File.Exists(strPath) Then
            'erm
            Response.Write("file not found")
        Else
            Response.WriteFile(strPath)
        End If

        Response.End()

    End Sub

编辑:我刚刚意识到这可能不是您正在寻找的解决方案;您的网络服务器应该能够缓存它。

答案 1 :(得分:0)

你需要处理程序。请参阅本文Protecting Your Images,“创建ImageHandler HTTP处理程序”部分,您将找到如何编写处理程序的代码,因此它会输出一个图像。你不需要所有,这只是一个例子。
您还需要在web.config中注册处理程序。
引用它Image1.ImageUrl =“handler.ashx?graphdata = xxxx”。使用QueryString获取数据源以生成图形。