Как извлечь изображения из swf файла?

У меня есть Flash-объект (с расширением swf). Объект flash содержит изображение, которое мне нужно извлечь и использовать вместо swf файла. Особенно для устройств, не поддерживающих флэш-память. Как мы можем извлечь изображение из файла swf (flash)? Какие инструменты я могу использовать?

Ответ 1

Ну, это зависит от ситуации, в любом случае вам понадобится способ идентифицировать это изображение внутри файла, а также символ.

Случай 1. Вставить

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

Случай 2. Время выполнения

(этот код выполняется после загрузки загрузчиком вашего исходного файла swf)

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

Надеюсь, что это поможет

Ответ 2

Там набор инструментов с открытым исходным кодом, который работает достаточно хорошо для работы. В Windows вам нужно будет запустить установщик как администратор или он умрет. Затем добавьте папку в свой PATH (или нет), и вы можете вытащить jpegs. Во-первых:

swfextract /path/to/file.swf

в котором будут перечислены все активы в файле. В этом случае обратите внимание на идентификаторы в разделе JPEG. Затем для каждого id запустите

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

Ответ 3

Я согласен с использованием инструментария с открытым исходным кодом, как ответил Том.

Чтобы создать инструменты и установить на 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.