2012-02-25 101 views
17

我有一个Flash对象(带swf扩展名)。 Flash对象包含我需要提取并使用的图像,而不是swf文件。尤其是对于不支持flash的设备。我们如何从swf(flash)文件中提取图像?我可以使用哪些工具?如何从swf文件中提取图像?

回答

3

那么这取决于具体情况,在任何情况下,您都需要一种方法来识别文件中的图像(也就是符号)。

案例1.嵌入

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

案例2.运行时

(执行该代码一旦装载机已加载您的SWF源文件)

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

希望它可以帮助

23

有一个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 
+0

由其他用户建议编辑:在上面一行中传递id值前面的'-i'开关。 – Tom 2014-09-17 12:49:56

+0

谢谢你的链接,其工作像一个神奇的 – Suresh 2015-01-20 06:33:57

+0

谢谢,swfrender也是有用的提取swf图像 – thomas 2015-09-29 12:27:29

5

我同意使用由汤姆回答的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中指定。

+3

无需在Ubuntu-Debian中进行编译,该软件包作为swftools存在于官方软件仓库中:'sudo apt-get install swftools' – jgpATs2w 2016-10-06 08:01:24