IO_SWF 2.2.0 をリリースしました
- インストール
yoya@sakura:~$ sudo pear channel-discover openpear.org yoya@sakura:~$ sudo pear install openpear/IO_Bit yoya@sakura:~$ sudo pear install openpear/IO_SWF
swfextract.php
SWF 中の画像、音声、ムービークリップを抽出します。
例えば、こんなネギを振ってる SWF があるとします。(MC 操作の実験素材です)
yoya@sakura:~/svn/IO_SWF$ php sample/swfextract.php -f negimiku2_mcnest.swf -p t- -m t-1.jpg t-3.jpg t-5.jpg t-8.swf t-9.jpg t-11.swf
t-1.jpg | ||
t-3.jpg | ||
t-5.jpg | ||
t-8.swf | http://diary.awm.jp/~yoya/data/2012/11/03/t-8.swf | |
t-9.jpg | ||
t-11.swf | http://diary.awm.jp/~yoya/data/2012/11/03/t-11.swf |
DefineSound
何処かで見つけたゲーム Flash
yoya@sakura:~/svn/IO_SWF$ php sample/swfdump.php -f bloxorz.swf | grep -A 5 DefineSound | less <略> Code: 14(DefineSound) Length: 41932 SoundId:40 SoundFormat:1(ADPCM) SoundRate:1(11kHz) SoundSize:1(sndStereo) SoundSampleCount:83754 -- Code: 14(DefineSound) Length: 760041 SoundId:41 SoundFormat:2(MP3) SoundRate:3(44kHz) SoundSize:1(sndStereo) SoundSampleCount:3351600||< <略>
getPNGData, getJpegData
こんな画像が色々入ってる Flash があるとして。
ダンプして画像の CharacterId を調べて、
yoya@sakura:~/svn/IO_SWF$ php sample/swfdump.php -f colorformat.swf | grep -A 3 DefineBits Code: 36(DefineBitsLossless2) Length: 43 CharacterID:1 BitmapFormat=5 BitmapWidth:50 BitmapHeight:50 Code: 20(DefineBitsLossless) Length: 50 CharacterID:2 BitmapFormat=5 BitmapWidth:50 BitmapHeight:100 Code: 36(DefineBitsLossless2) Length: 39 CharacterID:3 BitmapFormat=3 BitmapWidth:100 BitmapHeight:50 BitmapColorTableSize:1 Code: 21(DefineBitsJPEG2) Length: 811 CharacterID:4 Code: 20(DefineBitsLossless) Length: 35 CharacterID:5 BitmapFormat=3 BitmapWidth:50 BitmapHeight:50 BitmapColorTableSize:1 Code: 20(DefineBitsLossless) Length: 71 CharacterID:6 BitmapFormat=5 BitmapWidth:100 BitmapHeight:100 Code: 20(DefineBitsLossless) Length: 41 CharacterID:7 BitmapFormat=3 BitmapWidth:100 BitmapHeight:100 BitmapColorTableSize:1
として、
yoya@sakura:~/svn/IO_SWF$ php sample/swfgetpngdata.php colorformat.swf 1 > t.png
や、
yoya@sakura:~/svn/IO_SWF$ php sample/swfgetjpegdata.php colorformat.swf 4 > t.jpg
のように画像が抽出できます。
まぁ、今回追加する swfextract.php を使えば。
yoya@sakura:~/svn/IO_SWF$ php sample/swfextract.php -f colorformat.swf -p t- t-1.png t-2.png t-3.png t-4.jpg t-5.png t-6.png t-7.png
これで全部の画像が一気に取れて ID との対応も分かっちゃうので、こっちがお勧めです。