2014/05/16(金) [n年前の日記]
#1 [cg_tools] ImageMagickをインストールし直し
ImageMagick 6.8.7 Q16 x86 static 版をアンインストールして、ImageMagick-6.8.7-8-Q16-x86-dll.exe をインストールし直し。
RMagick をインストールしたいと思ったのですが…。 _RMagick を Windows 7 にインストールする方法 - 君の瞳はまるでルビー - Ruby 関連まとめサイト によると、RMagick を Windows にインストールする際は ImageMagick の特定バージョンが必要だそうで。Image Magick 6.8.7-8 までならインストールできると書いてあったので、一応その版を入れておこうかなと。
RMagick をインストールしたいと思ったのですが…。 _RMagick を Windows 7 にインストールする方法 - 君の瞳はまるでルビー - Ruby 関連まとめサイト によると、RMagick を Windows にインストールする際は ImageMagick の特定バージョンが必要だそうで。Image Magick 6.8.7-8 までならインストールできると書いてあったので、一応その版を入れておこうかなと。
[ ツッコむ ]
#2 [ruby] Rubyでswfを解析できるらしい
ググっていたら、swf を Ruby で解析するためのライブラリがあったようで。
_SwfRuby - SWFバイナリを直接操作して構造解析/リソース置換するためのRubyライブラリをリリースしました
_swf_ruby | RubyGems.org | your community gem host
_tmtysk/swf_ruby - GitHub
ただし、RMagick が必要…。
Windows環境の場合、 _RubyForge: RMagick に、rmagick-win32 というライブラリがあるのだけど。これは Ruby 1.8.6 までしか対応してなくて。ということで、swf_ruby を使いたくても要求ライブラリをインストールするところでハマりそうだなと。
swfmill を利用する _swfmill_ruby というライブラリもあるらしいのだけど、これも RMagick を要求する。厳しい。
_SwfRuby - SWFバイナリを直接操作して構造解析/リソース置換するためのRubyライブラリをリリースしました
_swf_ruby | RubyGems.org | your community gem host
_tmtysk/swf_ruby - GitHub
ただし、RMagick が必要…。
Windows環境の場合、 _RubyForge: RMagick に、rmagick-win32 というライブラリがあるのだけど。これは Ruby 1.8.6 までしか対応してなくて。ということで、swf_ruby を使いたくても要求ライブラリをインストールするところでハマりそうだなと。
swfmill を利用する _swfmill_ruby というライブラリもあるらしいのだけど、これも RMagick を要求する。厳しい。
[ ツッコむ ]
#3 [cg_tools] HugFlashを使ってswfから画像を取りだしてみた
swfmill で swf から xml に変換すると、中に base64文字列がずらずら並ぶ。おそらくは画像ファイルのデータだと思うのだけど。
それぞれの base64文字列を別ファイルにコピーして、base64 からバイナリに変換してみたのだけど。元々jpegファイルだったデータは、画像ビューワで開けるものの。元々 RGBA のpngだったデータは、ビューワで開くことができなくて。どうも png として扱うために必要な情報が欠落しているらしい。
_Flash SWF Spec - Flash SWF Spec を眺めて、swf内でどういう扱いをされてるデータなのかを予想。jpeg は、 _DefineBitsJPEG2 で記述されてるらしい。RGBAのpngは、 _DefineBitsLossless2 で記述されているのだけど、画像サイズやインデックスカラー等の情報が別に記述されてるようで、それらの情報も反映しないと画像ファイルとしては扱えないのだろうなと。
swfから画像ファイルの形で取り出すことはできないのかなと思ったけれど、 _HugFlash というツールがあったことを思い出した。起動して、swf をD&Dしてみたところ、IDをファイル名にした状態で、画像ファイルを取り出すことができた。
ということは…。HugFlash を使って画像ファイルを取り出した後、swfmill で変換した xml の中から、base64部分をごっそり削って、「この部分は "ID番号.jpg" だよ」みたいな記述で置き換えれば、xml はスッキリした形になりそうな予感。
それぞれの base64文字列を別ファイルにコピーして、base64 からバイナリに変換してみたのだけど。元々jpegファイルだったデータは、画像ビューワで開けるものの。元々 RGBA のpngだったデータは、ビューワで開くことができなくて。どうも png として扱うために必要な情報が欠落しているらしい。
_Flash SWF Spec - Flash SWF Spec を眺めて、swf内でどういう扱いをされてるデータなのかを予想。jpeg は、 _DefineBitsJPEG2 で記述されてるらしい。RGBAのpngは、 _DefineBitsLossless2 で記述されているのだけど、画像サイズやインデックスカラー等の情報が別に記述されてるようで、それらの情報も反映しないと画像ファイルとしては扱えないのだろうなと。
swfから画像ファイルの形で取り出すことはできないのかなと思ったけれど、 _HugFlash というツールがあったことを思い出した。起動して、swf をD&Dしてみたところ、IDをファイル名にした状態で、画像ファイルを取り出すことができた。
ということは…。HugFlash を使って画像ファイルを取り出した後、swfmill で変換した xml の中から、base64部分をごっそり削って、「この部分は "ID番号.jpg" だよ」みたいな記述で置き換えれば、xml はスッキリした形になりそうな予感。
[ ツッコむ ]
以上、1 日分です。