2012-02-25 31 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