【发布时间】:2012-03-09 21:57:43
【问题描述】:
如何在 linux 上将 swf 渲染为图像文件? 我需要能够将其他 swf 加载到该 swf 中并运行 actionscript 代码。
在Linux上甚至可能吗?我需要从 PHP 中完成,如果我必须使用命令行工具就可以了。
【问题讨论】:
-
Convert SWF to PNG 的可能重复项
标签: linux image png flash converter
如何在 linux 上将 swf 渲染为图像文件? 我需要能够将其他 swf 加载到该 swf 中并运行 actionscript 代码。
在Linux上甚至可能吗?我需要从 PHP 中完成,如果我必须使用命令行工具就可以了。
【问题讨论】:
标签: linux image png flash converter
swfrender from swftools 适用于基本 SWF 文件。
swfdec-gnome 中的swfdec-thumbnailer 有效,尽管它只获取 swf 的第一帧。
要使用 swfdec 从 swf 获取任何帧,请参阅以下邮件列表中的 C 代码 sn-p post。
来自gnash 的gnash 也适用于gnash -s<scale-image-factor> --screenshot last --screenshot-file output.png -1 -r1 input.swf,这是瑞士法郎的最后一张图片。
ffmpeg from ffmpeg 也适用于某些 swf 格式 ffmpeg -i movie.swf -f image2 -vcodec png movie%d.png
有关命令行管道,另请参阅以下guide。
为了从 php 调用外部程序,您使用 exec 命令记录在 here。
请注意,出于安全原因,出于安全原因,使用 escapeshellcmd 或 escapeshellarg 等另一个命令转义传递给 exec 的参数很重要。
无论是单帧还是全帧都转换为图像格式后,您将无法运行动作脚本。其他非 GNU/Linux 工具支持从 SWF 导出动作脚本。
如果您导出为 PNG 的 SWF 对于其他工具来说过于复杂,您可以使用 Flash 插件或Gnash 和 Xvfb 以及屏幕捕获软件来捕获 SWF 的图像帧或视频avi格式。然后您可以从视频格式中提取图像。
这种虚拟帧缓冲方法将支持复杂的 SWF 文件,虽然它需要做很多工作,因为您需要使用 Gnash 和 Xvfb 和 Screen Capture,或者浏览器,Xvfb 和 Selenium,如果您想捕获特定的一组鼠标/键盘与 SWF 的交互。
带有和不带有 Virtual FrameBuffer 的 Gnash 应该在导出之前加载 ActionScript,但可能会出现复杂的 ActionScript 问题。带有虚拟帧缓冲区的 Flash 插件将在导出前加载 ActionScript。
另请参阅以下 StackOverFlow 问题,您提出的问题与
【讨论】:
试试这个空中应用http://swfrenderer.kurst.co.uk
逐帧渲染swf
【讨论】: