2011-04-22 98 views
1

是否有任何库/模块可用于我可以从swf文件生成图像?从swf生成图像

我试图解决的问题是:我想从一个网页创建一个PDF,我有这样做,当网页都有SWF (question in stackoverflow) 我在想的问题,如果我能够读取SWF写出来的图像,我将能够解决这个问题

上面会感谢你的帮助,感谢

+1

你能为你的问题添加更多细节吗? – Sparky 2011-04-22 21:12:20

+0

不简单。 AFAIK没有任何开源的Flash播放器(swfdec,gnash)可以可靠地工作。这只剩下专有的Flash插件,它不是从脚本中调用的。您可能必须编写一个Web浏览器脚本,或者至少一个可以处理该插件的渲染引擎(webkit/gecko)。 – 2011-04-22 22:45:58

回答

1

事实上,这是一个相当艰巨的任务。我花了几个小时寻找一个可以完成这样的任务的程序。但是,我最终只找到一个。它不是开源的,但我真的会帮助你。

Flash Animation Source可以输出SWF文件的所有帧。它使用DirectShow过滤器来执行此操作。因此,如果您不想使用WINE,则需要Windows操作系统。

简而言之,您只需要在计算机上安装Flash Animation Source,然后找到一种使用所需编程语言获取DirectShow帧的方法。其他一切其实都很简单。您将Windows目录和SWF文件的名称告诉Windows,它将完成剩下的工作,从而为您提供图像。你知道DirectShow过滤器可以传送视频的所有帧吗?因此,你可以选择你想要的那一个。

顺便说一下,请不要试图找到另一种方式来获取SWF文件的图像。相信我,你不会找到一个。我已经找到了一个适合我需求的开源程序,但它们都失败了。您需要为您的输出使用专有的Adobe Flash播放器。没有其他选择,因为开源替代品仍然需要大量开发才能真正输出基于矢量的帧。

+0

哇,它工作。谢谢Fabianius,我可以在包中包含的示例应用程序中打开普通的swf文件。我被困在阅读通过flashvars获取参数的swf文件,你有什么想法吗? – SAN 2011-04-23 10:01:39

+0

看看随程序附带的IdlFile。它向您展示了如何设置SWF文件和其他选项的宽度和高度。在你的情况下,使用'HRESULT SetVariable([in] BSTR bstrName,[in] BSTR bstrValue);'设置闪存变量。 – Fabianius 2011-04-23 10:16:40