C# 如何在ASP.Net中将FusionChart导出到图像

C# 如何在ASP.Net中将FusionChart导出到图像,c#,asp.net,export,fusioncharts,save-as,C#,Asp.net,Export,Fusioncharts,Save As,我们正在使用免费版本的fusion图表,希望知道是否有一种方法可以将生成的图表导出到图像,而不使用任何第三方组件。我们正在使用ASP.Net生成图表 屏幕截图 许可证 当然,还有免费的Asp.net图表控件()。'这是一个如何使用这些工具导出的示例 屏幕截图 许可证 当然,还有免费的Asp.net图表控件()。'这是如何使用这些工具导出的示例。解决方案 在对这个主题进行研究之后,我找到了一个有用的解决方案 为此,我们需要从Bytecout获得一个免费软件来将swf转换为图像。这可以从这个网站下载

我们正在使用免费版本的fusion图表,希望知道是否有一种方法可以将生成的图表导出到图像,而不使用任何第三方组件。我们正在使用ASP.Net生成图表

  • 屏幕截图
  • 许可证
  • 当然,还有免费的Asp.net图表控件()。'这是一个如何使用这些工具导出的示例

  • 屏幕截图
  • 许可证

  • 当然,还有免费的Asp.net图表控件()。'这是如何使用这些工具导出的示例。

    解决方案

    在对这个主题进行研究之后,我找到了一个有用的解决方案

    为此,我们需要从Bytecout获得一个免费软件来将swf转换为图像。这可以从这个网站下载

    然后我们需要注册COM DLL并将引用添加到我们的项目中。有关进一步的用法,请参阅下文

    Protected Sub btnSwf2ImgConverter_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim swfobj As New SWFToImage.SWFToImageObject
        swfobj.InitLibrary("demo", "demo")
        swfobj.InputSWFFileName = Server.MapPath("dumps/swf/") & "FCF_MSColumn3D.swf"
        If ddlImageExtension.SelectedValue = "jpg" Then
            swfobj.ImageOutputType = TImageOutputType.iotJPG
            ext = ".jpg"
        Else
            If ddlImageExtension.SelectedValue = "gif" Then
                swfobj.ImageOutputType = TImageOutputType.iotGIF
                ext = ".gif"
            Else
                If ddlImageExtension.SelectedValue = "png" Then
                    swfobj.ImageOutputType = TImageOutputType.iotPNG
                    ext = ".png"
                Else
                    If ddlImageExtension.SelectedValue = "bmp" Then
                        swfobj.ImageOutputType = TImageOutputType.iotBMP
                        ext = ".bmp"
                    End If
                End If
            End If
        End If
    
        filenm = "FCF_Column3D" & ext
        swfobj.Execute_Begin()
        'swfobj.Execute()
        swfobj.Execute_SetVariable("dataXML", "<graph animation='0' formatNumber='1' divLineColor='ff5904' divLineAlpha='20' alternateHGridAlpha='5'  canvasBorderColor='666666'  baseFontColor='666666' showAlternateHGridColor='1' AlternateHGridColor='ff5904'  anchorSides='3' rotateNames='1' caption='Daily Reports' yAxisMinValue='0' yAxisMaxValue='1'  xAxisName='Day-Month-Year' yAxisName='Percentage' decimalPrecision='2'  numdivlines='8' numVdivlines='16' showhovercap='1'  formatNumberScale='0'> <categories> <category name='1-Jun-2010' showName='1' /> <category name='2-Jun-2010' showName='1' /> <category name='3-Jun-2010' showName='1' /> <category name='4-Jun-2010' showName='1' /> <category name='5-Jun-2010' showName='1' /> <category name='6-Jun-2010' showName='1' /> <category name='7-Jun-2010' showName='1' /> <category name='8-Jun-2010' showName='1' /> <category name='9-Jun-2010' showName='1' /> <category name='10-Jun-2010' showName='1' /> <category name='11-Jun-2010' showName='1' /> <category name='12-Jun-2010' showName='1' /> <category name='13-Jun-2010' showName='1' /> <category name='14-Jun-2010' showName='1' /> <category name='15-Jun-2010' showName='1' /> <category name='Aggregate' showName='1' /></categories><dataset  showValues='0' alpha='80' showAnchors='1' seriesname='Answered Percent' color='#f07979' lineThickness='2'><set name='Month' value='97.6'/><set name='Month' value='98.2'/><set name='Month' value='99.3'/><set name='Month' value='99.6'/><set name='Month' value='95.2'/><set name='Month' value='99.3'/><set name='Month' value='99.3'/><set name='Month' value='98.8'/><set name='Month' value='97.5'/><set name='Month' value='96.3'/><set name='Month' value='98.6'/><set name='Month' value='99.1'/><set name='Month' value='99.3'/><set name='Month' value='99.6'/><set name='Month' value='99.2'/><set name='Month' value='98.38'/></dataset></graph>")
        swfobj.Execute_SetVariable("chartWidth", "750")
        swfobj.Execute_SetVariable("chartHeight", "600")
        swfobj.ImageWidth = 600
        swfobj.ImageHeight = 500
        Threading.Thread.Sleep(10000)
    
        swfobj.Execute_GetImage()
        swfobj.SaveToFile(Server.MapPath("dumps/images/" & filenm))
        swfobj.Execute_End()
        Call DownloadImage(filenm)
    End Sub
    
    Public Sub DownloadImage(ByVal fn As String)
        Image1.ImageUrl = "~/dumps/images/" & fn
        Dim fi As New FileInfo(Server.MapPath("dumps/images/" & fn))
        HttpContext.Current.Response.Clear()
        HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", fn))
        HttpContext.Current.Response.ContentType = "image/" & DropDownList1.SelectedValue
        Response.WriteFile(fi.FullName)
        Response.Flush()
        fi.Delete()
        Response.End()
    
    End Sub
    
    受保护的子btnSwf2ImgConverter\u单击(ByVal sender作为对象,ByVal e作为System.EventArgs)处理按钮1。单击
    将swfobj调整为新SWFToImage.SWFToImageObject
    InitLibrary(“demo”、“demo”)
    swfobj.InputSWFFileName=Server.MapPath(“dumps/swf/”)&“FCF\u MSColumn3D.swf”
    如果ddlImageExtension.SelectedValue=“jpg”,则
    swfobj.ImageOutputType=TImageOutputType.iotJPG
    ext=“.jpg”
    其他的
    如果ddlImageExtension.SelectedValue=“gif”,则
    swfobj.ImageOutputType=TImageOutputType.iotGIF
    ext=“.gif”
    其他的
    如果ddlImageExtension.SelectedValue=“png”,则
    swfobj.ImageOutputType=TImageOutputType.iotPNG
    ext=“.png”
    其他的
    如果ddlImageExtension.SelectedValue=“bmp”,则
    swfobj.ImageOutputType=TImageOutputType.iotBMP
    ext=“.bmp”
    如果结束
    如果结束
    如果结束
    如果结束
    filenm=“FCF_Column3D”&ext
    swfobj.Execute_Begin()
    'swfobj.Execute()
    swfobj.Execute_SetVariable(“dataXML”,即“”)
    swfobj.Execute_SetVariable(“图表宽度”、“750”)
    swfobj.Execute_SetVariable(“图表高度”、“600”)
    swfobj.ImageWidth=600
    swfobj.ImageHeight=500
    线程。线程。睡眠(10000)
    swfobj.Execute_GetImage()
    swfobj.SaveToFile(Server.MapPath(“dumps/images/”&filenm))
    swfobj.Execute_End()
    调用下载映像(filenm)
    端接头
    公共子下载映像(ByVal fn作为字符串)
    Image1.ImageUrl=“~/dumps/images/”&fn
    将fi设置为新文件信息(Server.MapPath(“dumps/images/”&fn))
    HttpContext.Current.Response.Clear()
    HttpContext.Current.Response.AddHeader(“内容处置”,String.Format(“附件;文件名={0}”,fn))
    HttpContext.Current.Response.ContentType=“image/”&DropDownList1.SelectedValue
    Response.WriteFile(fi.FullName)
    Response.Flush()
    fi.删除()
    答复:End()
    端接头
    
    在这里,animation='0'起着非常重要的作用,它指定了融合图swf,它必须在没有动画的情况下加载。另外,如果我们将代码休眠1或2秒,swf将完全加载,图像将转换为所选格式,这也是明智的


    希望这对像我这样的人有用。:-)

    解决方案

    在对这个主题进行研究之后,我找到了一个有用的解决方案

    为此,我们需要从Bytecout获得一个免费软件来将swf转换为图像。这可以从这个网站下载

    然后我们需要注册COM DLL并将引用添加到我们的项目中。有关进一步的用法,请参阅下文

    Protected Sub btnSwf2ImgConverter_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim swfobj As New SWFToImage.SWFToImageObject
        swfobj.InitLibrary("demo", "demo")
        swfobj.InputSWFFileName = Server.MapPath("dumps/swf/") & "FCF_MSColumn3D.swf"
        If ddlImageExtension.SelectedValue = "jpg" Then
            swfobj.ImageOutputType = TImageOutputType.iotJPG
            ext = ".jpg"
        Else
            If ddlImageExtension.SelectedValue = "gif" Then
                swfobj.ImageOutputType = TImageOutputType.iotGIF
                ext = ".gif"
            Else
                If ddlImageExtension.SelectedValue = "png" Then
                    swfobj.ImageOutputType = TImageOutputType.iotPNG
                    ext = ".png"
                Else
                    If ddlImageExtension.SelectedValue = "bmp" Then
                        swfobj.ImageOutputType = TImageOutputType.iotBMP
                        ext = ".bmp"
                    End If
                End If
            End If
        End If
    
        filenm = "FCF_Column3D" & ext
        swfobj.Execute_Begin()
        'swfobj.Execute()
        swfobj.Execute_SetVariable("dataXML", "<graph animation='0' formatNumber='1' divLineColor='ff5904' divLineAlpha='20' alternateHGridAlpha='5'  canvasBorderColor='666666'  baseFontColor='666666' showAlternateHGridColor='1' AlternateHGridColor='ff5904'  anchorSides='3' rotateNames='1' caption='Daily Reports' yAxisMinValue='0' yAxisMaxValue='1'  xAxisName='Day-Month-Year' yAxisName='Percentage' decimalPrecision='2'  numdivlines='8' numVdivlines='16' showhovercap='1'  formatNumberScale='0'> <categories> <category name='1-Jun-2010' showName='1' /> <category name='2-Jun-2010' showName='1' /> <category name='3-Jun-2010' showName='1' /> <category name='4-Jun-2010' showName='1' /> <category name='5-Jun-2010' showName='1' /> <category name='6-Jun-2010' showName='1' /> <category name='7-Jun-2010' showName='1' /> <category name='8-Jun-2010' showName='1' /> <category name='9-Jun-2010' showName='1' /> <category name='10-Jun-2010' showName='1' /> <category name='11-Jun-2010' showName='1' /> <category name='12-Jun-2010' showName='1' /> <category name='13-Jun-2010' showName='1' /> <category name='14-Jun-2010' showName='1' /> <category name='15-Jun-2010' showName='1' /> <category name='Aggregate' showName='1' /></categories><dataset  showValues='0' alpha='80' showAnchors='1' seriesname='Answered Percent' color='#f07979' lineThickness='2'><set name='Month' value='97.6'/><set name='Month' value='98.2'/><set name='Month' value='99.3'/><set name='Month' value='99.6'/><set name='Month' value='95.2'/><set name='Month' value='99.3'/><set name='Month' value='99.3'/><set name='Month' value='98.8'/><set name='Month' value='97.5'/><set name='Month' value='96.3'/><set name='Month' value='98.6'/><set name='Month' value='99.1'/><set name='Month' value='99.3'/><set name='Month' value='99.6'/><set name='Month' value='99.2'/><set name='Month' value='98.38'/></dataset></graph>")
        swfobj.Execute_SetVariable("chartWidth", "750")
        swfobj.Execute_SetVariable("chartHeight", "600")
        swfobj.ImageWidth = 600
        swfobj.ImageHeight = 500
        Threading.Thread.Sleep(10000)
    
        swfobj.Execute_GetImage()
        swfobj.SaveToFile(Server.MapPath("dumps/images/" & filenm))
        swfobj.Execute_End()
        Call DownloadImage(filenm)
    End Sub
    
    Public Sub DownloadImage(ByVal fn As String)
        Image1.ImageUrl = "~/dumps/images/" & fn
        Dim fi As New FileInfo(Server.MapPath("dumps/images/" & fn))
        HttpContext.Current.Response.Clear()
        HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", fn))
        HttpContext.Current.Response.ContentType = "image/" & DropDownList1.SelectedValue
        Response.WriteFile(fi.FullName)
        Response.Flush()
        fi.Delete()
        Response.End()
    
    End Sub
    
    受保护的子btnSwf2ImgConverter\u单击(ByVal sender作为对象,ByVal e作为System.EventArgs)处理按钮1。单击
    将swfobj调整为新SWFToImage.SWFToImageObject
    InitLibrary(“demo”、“demo”)
    swfobj.InputSWFFileName=Server.MapPath(“dumps/swf/”)&“FCF\u MSColumn3D.swf”
    如果ddlImageExtension.SelectedValue=“jpg”,则
    swfobj.ImageOutputType=TImageOutputType.iotJPG
    ext=“.jpg”
    其他的
    如果ddlImageExtension.SelectedValue=“gif”,则
    swfobj.ImageOutputType=TImageOutputType.iotGIF
    ext=“.gif”
    其他的
    如果ddlImageExtension.SelectedValue=“png”,则
    swfobj.ImageOutputType=TImageOutputType.iotPNG
    ext=“.png”
    其他的
    如果ddlImageExtension.SelectedValue=“bmp”,则
    swfobj.ImageOutputType=TImageOutputType.iotBMP
    ext=“.bmp”
    如果结束
    如果结束
    如果结束
    如果结束
    filenm=“FCF_Column3D”&ext
    swfobj.Execute_Begin()
    'swfobj.Execute()
    swfobj.Execute_SetVariable(“dataXML”,即“”)
    swfobj.Execute_SetVariable(“图表宽度”、“750”)
    swfobj.Execute_SetVariable(“图表高度”、“600”)
    swfobj.ImageWidth=600
    swfobj.ImageHeight=500
    线程。线程。睡眠(10000)
    swfobj.Execute_GetImage()
    swfobj.SaveToFile(Server.MapPath(“dumps/images/”&filenm))
    swfobj.Execute_End()
    调用下载映像(filenm)
    端接头
    公共子下载映像(ByVal fn作为字符串)
    Image1.ImageUrl=“~/dumps/images/”&fn
    将fi设置为新文件信息(Server.MapPath(“dumps/images/”&fn))
    HttpContext.Current.Response.Clear()
    HttpContext.Current.Response.AddHeader(“内容处置”,String.Format(“附件;文件名={0}”,fn))
    HttpContext.Current.Response.ContentType=“image/”&DropDownList1.SelectedValue
    Response.WriteFile(fi.FullName)
    Response.Flush()
    fi.删除()
    答复:End()
    端接头
    
    在这里,animation='0'起着非常重要的作用,它指定了融合图swf,它必须在没有动画的情况下加载。另外,如果我们将代码休眠1或2秒,swf将完全加载,图像将转换为所选格式,这也是明智的


    希望这对像我这样的人有用。:-)

    FusionCharts团队开发了一个.NET程序集,该程序集