BREWでPNGを落として IImage に読み込ませる

id:yellow_73:20060414 を優先して下さい。


とりあえず、HTTPリクエストを出して、レスポンスを受け取るサンプルを動かす。
サンプルは http://www.s-cradle.com/developer/itmedia/web1.html から頂きました。
かなりな紆余曲折を経て、とりあえず IImage に読み込ませて、画像サイズ等の情報を取り出すところまで成功。
ソースを載せたいけど面倒なので、要点だけメモ。

  1. レスポンス用コールバックが呼ばれるようにしてHTTPリクエストを出す。
  2. レスポンス用コールバックでは、WebRespInfo.lContentLength (多分Content-Length)をデータ長として、メモリ確保をして、WebRespInfo.pisMessage 受信用コールバックが呼ばれるようにしてISOURCE_Readable を実行。
  3. pisMessage受信用コールバックでは、逐次読み込み→ポインタ移動→ISOURCE_Readable を行い、予定のデータ長まで達したら、pngハンドラ作成、メモリストリーム作成、メモリストリームにメモリをアタッチ、IIMAGE_Notify でイメージ読み取り完了時のコールバックを指定、を行う。
  4. イメージ読み取り完了時のコールバックでは、とりあえず、IIMAGE_Draw で描画して、IDISPLAY_Update( pMe->a.m_pIDisplay ); でディスプレイを更新。

なお、私の場合、コールバック引数は、常に pMe を与えていたりします。