将Flash(SWF)帧渲染为图像(PDF,PNG,JPG)

das*_*zul 7 flash command-line

我想编写一个python脚本,它接受一堆swf文件并将它们呈现给单个图像文件.

每个swf文件只有一个帧(文本,图片等),根本没有动画.我已经尝试过swftools工具集(Windows版本)的渲染命令,但生成的图像的分辨率太低.

所以我需要的是:

一个命令行工具(Windows/Linux)或一个python库,它将一个帧从一个swf渲染到一个位图或更好地渲染到类似PDF的东西(如果可以保留文本数据那将会很酷).如果可以手动设置目标分辨率/大小,那将是很好的.

提前致谢!

das*_*zul 11

我很抱歉回答我自己的问题,但我通过浏览来源找到了swfrender(swftools的一部分)的无证特征.

swfrender path/to/my.swf -X<width of output> -Y<height of output>
-o<filename of output png>
Run Code Online (Sandbox Code Playgroud)

您可能已经猜到了X选项可以让您确定输出的宽度(以像素为单位),Y对于高度也是如此.如果您只设置一个参数,则选择另一个参数与原始高宽比(非常有用)

这对我有用,但是随着Zarate提供了一个可能更好的解决方案(我正在考虑swf到PDF转换),他应该得到学分.

干杯


小智 5

有时SWFRender卡在非常重的文件上,特别是在生成300dpi +图像时.在这种情况下,Gnash可以提供帮助:

gnash -s<scale-image-factor> --screenshot last --screenshot-file output.png -1 -r1 input.swf
Run Code Online (Sandbox Code Playgroud)

这里我们将一个电影的最后一帧转储到文件output.png禁用声音处理并在渲染帧后退出.我们也可以在这里指定比例因子或使用

-j width -k height
Run Code Online (Sandbox Code Playgroud)

指定结果图像的确切大小.


Jua*_*ado 4

例如,您可以构建一个 AIR 应用程序来加载每个 SWF、截取屏幕截图并将其写入文件。

问题是你需要启动一些东西来进行渲染,据我所知,如果没有播放器或其一些开源实现,你就无法做到这一点。

我认为最好的选择是使用 AIR,该 SDK是免费且跨平台的。如果您习惯使用 python,那么必需的 AS3 应该很容易掌握。

哈特哈,

J