什麼swfrender確實是渲染的SWF。你可以嘗試提取的對象而不是swfextract,這也包括在swftools。
從swftools Wiki:
要提取的一切使用...
swfextract --outputformat "extract_%06d.%s" -a 1- test.swf
而且關於它的一些幫助,從手冊頁:
Extract all:
-a Extract all files
--outputformat "extract_%06d.%s" Filename to use for extraction (printf format)
否則,如果您只想提取某些對象,則可以這樣做:
提取單個項目。首先,運行swfextract file.swf
並獲取任何Flash應用程序包含的內容。輸出看起來像:
Objects in file file.swf:
[-i] 8 Shapes: ID(s) 2, 5, 7, 9, 11, 13, 15, 17
[-i] 1 MovieClip: ID(s) 18
[-j] 8 JPEGs: ID(s) 1, 4, 6, 8, 10, 12, 14, 16
[-F] 1 Font: ID(s) 3
[-f] 1 Frame: ID(s) 0
這些都是,你將能夠提取對象。例如,如果你想在第三JPG(ID = 6)解壓到一個文件file.jpeg,該命令是:
swfextract -j 6 file.swf -o file.jpeg
所以,如果你想提取一切從每一個SWF文件,而不是混合在一起,我想到的最佳解決方案是從每個SWF文件中提取每個文件夾中的每一組文件。您可以通過使用for
循環來實現:爲每個SWF文件創建一個文件夾,並提取該文件夾內的SWF的每個元素。這對於稍後處理它們會很有用。
但是,例如,形狀被提取爲SWF,您可以渲染它們,或在渲染它們之前調整它們的大小。
另一點是,您可能需要調整大小,或在渲染對象之前移動對象。您可以使用swftools中的其他工具支付:swfcombine。此工具通常用於SWF對象組合,但你可以用它來在它移動或調整的元素:
−d, −−dummy Don't require slave objects (for changing movie attributes)
然後你應該能夠正確地呈現它。
對不起,如果我困惑你,但有這麼多的選擇......它似乎取決於特定情況(我不知道這是如何處理不同種類的SWF,如AS1, AS2等)。無論如何,我希望這至少對你有所幫助!
一個有趣的問題,但像「我正在尋找一個工具」這樣的短語表明StackOverflow的「超出範圍」問題。最好編輯你的Q,刪除這些短語(你有幾個這樣的),並顯示「你已經嘗試過的代碼」。其他人可能會用更好的工具加入,或者不明顯地使用可用的選項。祝你好運。 – shellter