web-dev-qa-db-ja.com

SWFファイルから画像を抽出する方法は?

SWFファイルにFlashオブジェクトがあります。抽出する必要がある画像が含まれているため、Flashをサポートしていないデバイスに直接使用できます。

SWFから画像を抽出するにはどうすればよいですか?どのツールを使用すればよいですか?

20
pri_dev

状況によって異なりますが、いずれの場合も、ファイル内のそのイメージ(シンボル)を識別する方法が必要になります。

ケース1.埋め込み

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

ケース2.ランタイム

(ローダーがswfソースファイルをロードすると、このコードが実行されます)

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

それが役に立てば幸い

3
Mc-

オープンソースツールキット があり、これは仕事にかなり適しています。 Windowsでは、管理者としてインストーラーを実行する必要があります。次に、フォルダーをPATHに追加する(またはしない)ことで、jpegを取り出すことができます。最初:

swfextract /path/to/file.swf

ファイル内のすべてのアセットがリストされます。この場合、JPEGセクションのIDに注意してください。次に、各IDに対して、実行します

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

トムが答えたように、 オープンソースツールキット を使用することに同意します。

ツールをビルドして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ページ

7
Mark C Mitchell

SWFTools(上記の回答で述べた)の代わりに JPEXS FFDec 、SWFデコンパイラーおよびエディターがあります。主な利点は、画像を抽出する前にプレビューできることです。また、GUIツールであるため、少し使いやすくなっています。

FFDecにファイルをロードしたら、サイドツリーの[画像]セクションをクリックします。画像を抽出するには、画像を右クリックし、「選択をエクスポート」、「OK」の順に選択します。 (ギャラリービューとサイドツリーの両方で)複数のアイテムを選択して、同時に抽出できます。すべての画像を抽出するには、サイドツリーで[画像]を右クリックし、その上で[選択のエクスポート]を使用します。結果は、新しく作成された「画像」フォルダに保存されます。

0
MultiplyByZer0