【问题标题】:Render Flash (SWF) frame as image (PDF,PNG,JPG)将 Flash (SWF) 帧渲染为图像 (PDF,PNG,JPG)
【发布时间】:2010-06-07 10:49:27
【问题描述】:

我想编写一个 python 脚本,它接收一堆 swf 文件并将它们呈现为单独的图像文件。

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

所以我需要的是:

命令行工具 (Windows/Linux) 或 python 库,可将一帧从 swf 渲染为位图,或者更好地渲染为 PDF(如果可以保留文本数据会很酷)。如果可以手动设置目标分辨率/尺寸,那就太好了。

提前致谢!

【问题讨论】:

    标签: command-line flash


    【解决方案1】:

    很抱歉回答我自己的问题,但通过浏览源代码,我发现了 swfrender(swftools 的一部分)的未记录功能。

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

    正如您可能已经猜到的那样,X 选项可让您确定输出的宽度(以像素为单位),而 Y 对高度的作用相同。如果你只设置一个参数,那么根据原始的高宽比选择另一个参数(非常有用)

    这对我有用,但由于 Zarate 提供了一个可能更好的解决方案(我正在考虑将 swf 转换为 PDF),所以他值得称赞。

    干杯

    【讨论】:

    • 不做透明的工作,目前有没有其他选择?
    【解决方案2】:

    有时 SWFRender 会卡在非常重的文件上,尤其是在生成 300dpi+ 图像时。在这种情况下,Gnash 可能会有所帮助:

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

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

    -j width -k height
    

    指定生成图像的确切大小。

    【讨论】:

      【解决方案3】:

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

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

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

      HTH,

      J

      【讨论】:

      • 谢谢!没有想到这一点。我会试一试并发布我的结果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 2014-07-30
      • 1970-01-01
      相关资源
      最近更新 更多