Windows Imaging Component(WIC)と格闘中

Windows Imaging Component(WIC)と格闘中
COMモデルなので、ややこしいレベルは最大級….orzっとな

画像ファイルを読み込み表示するのはたくさんプログラミング例が見つかりますが、メモリ上の画像イメージをWICに持ってくのは実は探しても無いです。しゃーないのう,
ということでMSDNを放浪し見つけたのが、CreateDecoderFromStreamで、ポインタ引数にゐれたらすみそうだと思ったのですが、ポインタじゃなく、IStreamで渡せと、じゃ、IStreamに割り当てたポインタとサイズを渡す方法がどうも見つからない。またまたMSDNをさまよい
どうやらCreateStreamOnHGlobalを使うと、良いらしい。

あれ?待てよ、ストアアプリの場合HGlobal使えたっけ?と思いだしてWinRT-API片っ端から読んでまたまたMSDNをさまよい、HGlobalは使えるけど、GlobalAllocは使えないという恐ろしい事態が発覚、

またまたMSDNをさまよい、そしたらCreateStreamOnHGlobalはHGlobal引数はNULLに設定して、IStream::writeで、元のポインタと転送サイズを設定すれば、その画像のメモリイメージがIStreamに作成されるということらしい。

うーん?なんで、こんなややこしいねん。ということで、備忘録で残しておこう。

ということで、参考したサイトはここ(http://www.usefullcode.net/2006/12/istream_2.html)

 

Leave a Reply