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

我们正在使用融合图表的免费版本,并想知道有没有办法将生成的图表导出到图像而不使用任何第三方组件。 我们使用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", "                 ") 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 

这里animation =’0’起着非常重要的作用,它指定了融合图表swf,它必须在没有动画的情况下加载。 此外,如果我们将代码hibernate1或2秒,则建议将swf完全加载并将图像转换为所选格式。

希望这对像我这样的人有用。 🙂

  1. 屏幕截图。
  2. 许可它。

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

FusionCharts团队开发了一个.NET程序集,使您可以在服务器上导出图表而无需在浏览器中加载图表。

您可以通过http://www.fusioncharts.com/contact/写入FusionCharts支持部门。

这仅适用于FusionCharts v3图表。