SWFファイルから画像を抽出する – Moonmile Solutions Blog
http://www.moonmile.net/blog/archives/5136
の機能を組み込んで、諜報員の艦娘を秘書艦に合わせます。
途中で立ち上げると、うまく切り替わらないので、あからじめ諜報員を立ち上げて置くか、艦これのほうで秘書艦を変えてみてください。このあたりは、のちのち修正しましょう。秘書官を立ち上げたときに、前の艦娘を表示したほうがよさそうだし。
バイナリのほうは 艦これ 諜報員 – Moonmile Solutions Blog からダウンロードしてください。
■Fiddler のフック時に HttpClinet は使えない。
考えてみれば、当たり前なのですが、Fiddler でフックしている中で HttpClient などを呼び出すと、元の Fiddler にフックしてしまうために再入が発生します。FiddlerCore の中身は static のものが多いらしく、なんか url などが途中で消えてしまったうまく動きませんでした。
なので、どうせならば、Task を使って遅延させれば OK。
void UpdateKanmusu(string url , int shipId) { // TODO: WebClient も Fiddler にフックされるので再入を防ぐために非同期にすること。 // swf をダウンロード Task.Factory.StartNew(async() => { var cl = new HttpClient(); var data = await cl.GetByteArrayAsync(new Uri(url)); // swf から画像を取り出す var reader = new SwfReader(data); var swf = new SwfCompilationUnit(reader); var lst = swf.Tags.FindAll(x => x.TagType == TagType.DefineBitsJPEG3 && ((DefineBitsTag)x).CharacterId == 13); var tag = lst[0] as DefineBitsTag; Bitmap bmp = tag.ToBitmap(); // 描画 UpdateForm(bmp); }); }
実は、Fiddler でフック中で重たい処理をすると、ブラウザのほうのレスポンスが悪くなります。なので、処理をしないメッセージであればできるだけ早く解放してやるのがベターです。
そんな訳でサンプルソースは http://sdrv.ms/18ZCDbe から。
ティファニー リング 時計ジェイコブス http://www.kxqic.com/