如何从SWF文件中提取图像?

时间:2012-02-25 21:21:01

标签: flash

我在SWF文件中有一个Flash对象。它包含我需要提取的图像,因此我可以直接将其用于不支持Flash的设备。

如何从SWF中提取图像?我应该使用哪些工具?

4 个答案:

答案 0 :(得分:25)

有一个open source toolkit可以很好地完成这项工作。在Windows上,您需要以管理员身份运行安装程序,否则它将死亡。然后将文件夹添加到PATH(或不),你可以拉出jpegs。第一:

swfextract /path/to/file.swf

将列出文件中的所有资产。在这种情况下,请注意JPEG部分中的ID。然后为每个id运行

swfextract /path/to/file.swf -i id -o name-of-my-new-file.jpg

答案 1 :(得分:7)

我同意使用汤姆回答的open source toolkit

要构建工具并在linux / mac上安装,请使用wiki中指定的命令:

tar -zvxf swftools-0.x.x.tar
cd swftools-0.x.x
./configure
make 
make install

以下是提取所有资产的命令:

swfextract --outputformat "extract_%06d.%s" -a 1- test.swf

如此wiki page中所述。

答案 2 :(得分:3)

这取决于具体情况,无论如何你都需要一种方法来识别文件中的图像,即符号。

案例1.嵌入

[Embed(source="assets/library.swf", symbol="AImage")]
[Bindable]
public var AImage:Class;

案例2.运行时

(此代码在加载器加载swf源文件后执行)

loader.contentLoaderInfo.applicationDomain.getDefinition("AImage");

希望有所帮助

答案 3 :(得分:0)

SWFTools的替代方法(在上面的答案中提到)是JPEXS FFDec,它是SWF的反编译器和编辑器。它的主要优点是您可以在提取图像之前预览图像。作为GUI工具,它也更易于使用。

在FFDec中加载文件后,单击侧面树中的“图像”部分。要提取图像,请右键单击它,然后选择“导出选择”,然后选择“确定”。您可以选择多个项目(在图库视图和边树中)并同时提取它们。要提取所有图像,请在侧面树中右键单击“图像”,然后在其上使用“导出选择”。结果将保存在新创建的“图像”文件夹中。