我在SWF文件中有一个Flash对象。它包含我需要提取的图像,因此我可以直接将其用于不支持Flash的设备。
如何从SWF中提取图像?我应该使用哪些工具?
答案 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中加载文件后,单击侧面树中的“图像”部分。要提取图像,请右键单击它,然后选择“导出选择”,然后选择“确定”。您可以选择多个项目(在图库视图和边树中)并同时提取它们。要提取所有图像,请在侧面树中右键单击“图像”,然后在其上使用“导出选择”。结果将保存在新创建的“图像”文件夹中。