Mobileメモ:GIF画像表示

Last-modified: 2009-05-09 (土) 14:44:32
Last update: 2009-05-09 (土) 14:44:32

Mobileメモ:GIF画像表示


WindowsMobileでGIF画像を表示する方法

Windows MobileでGIF画像を表示する方法です。

関数

Windows MobileではWindowsで使用しているOleLoadPicture()関数が使用できません。

olectl.hには記載されていますが、ライブラリは存在しません。

その代わりに以下の関数を使用します。

HBITMAP SHLoadImageFile (
  LPCTSTR pszFileName
);

ファイル名を指定するだけなので、OleLoadPicture()より遥かに簡単です。

準備

SHLoadImageFile()関数を使用する場合は、aygshell.hをインクルードする必要があるので

#include <aygshell.h>

としておく必要があります。

またaygshell.libをリンクする必要があるので、プロジェクトに追加するか、ソースファイルに

#pragma comment( lib, "aygshell.lib" )

の行を追加しておきましょう。

使い方

SHLoadImageFile()関数は以下の画像ファイルを読み込み自動変換してHBITMAPとして返します。

  • GIF (Graphics Interchange Format)
  • PNG (Portable Network Graphics)
  • JPG (Joint Photographic Experts Group)
  • ICO (icon)
  • BMP (bitmap)

後はHBITMAPとしてSelectObject()BltBit()等で表示するだけです。

ただし、透過GIFとアニメーションGIFには非対応。

アニメーションGIFは最初の1枚だけが表示されます。

透過GIFについてはフォーマットを解析して透過色のRGBを抜き出してTransparentBlt()を使いましょう。

参考

Windows Mobile 5.0以上ではImaging APIが使用可。

ただし、Imaging APIでもとアニメーションGIFには非対応のようです。


コメント