2010-06-07 52 views
7

我想编写一个需要一堆swf文件并将它们渲染为单个图像文件的python脚本。将Flash(SWF)帧渲染为图像(PDF,PNG,JPG)

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

所以我需要的是:

一个命令行工具(在Windows/Linux)或从一个swf为位图或更好的东西就像一个PDF渲染一帧一个Python库(这将是冷静,如果文本数据可以保留)。如果目标分辨率/尺寸可以手动设置,那将会很棒。

在此先感谢!

回答

3

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

事情是你需要开始做渲染的东西,并且据我所知,如果没有玩家或其开源实现,你就无法做到这一点。

我认为你最好的选择就是AIR,是免费且跨平台的。如果你习惯了python,AS3必须很容易拾取。

HTH,

Ĵ

+0

谢谢!没有想到这一点。我会试一试并发布我的结果。 – 2010-06-07 13:01:38

11

我很抱歉地回答我的问题,但我通过源浏览发现swfrender的无证功能(在swftools的一部分)。

swfrender path/to/my.swf -X<width of output> -Y<height of output> 
-o<filename of output png> 

正如你可能已经猜到了X选项让你决定输出的宽度(像素)和Y不相同的高度。如果你只是设置一个参数,那么另一个是根据原始高度/宽度比(非常有用)选择的

这对我来说是个诀窍,但作为Zarate提供的解决方案可能会更好(我考虑到瑞士法郎转换为PDF格式)他应得的学分。

干杯

+0

不透明度的工作,在此期间是否有其他选择? – Osa 2015-04-24 16:06:55

5

有时SWFRender是停留在非常沉重的文件,生成300dpi的图像+尤其是当。在这种情况下GNASH可以帮助:

gnash -s<scale-image-factor> --screenshot last --screenshot-file output.png -1 -r1 input.swf 

这里我们转储一个电影文件output.png禁止无害化处理和帧渲染后退出的最后一帧。此外,我们可以在此处指定比例因子或使用

-j width -k height 

指定所得图像的确切大小。