FC2ブログ

ホーム > 2010年10月

2010年10月月度記事一覧

libjpegのインストール



「libpngのインストール」で解説したlibpngと同じようにオープンソースが入手できる、「Independent JPEG Group」というサイトで公開されているJPEGのフリーライブラリーについて解説します。


...続きを読む

JPEGファイルの読み込み



今回は、JPEGファイルデコード「Independent JPEG Group」のライブラリを使用して、カラーの場合は24ビットDIBグレイスケールの場合は8ビットDIBを作成します。尚JPEGライブラリの扱いについては、前回の「libjpegのインストール」をご参照ください。


...続きを読む

JPEGファイルの書き込み



今回は、DIB画像を「Independent JPEG Group」のライブラリーを使用して、JPEGファイルに書き込む方法を解説します。尚JPEGライブラリーの扱いについては、前々回の「libjpegのインストール」をご参照ください。


...続きを読む

ANIファイルの読み込み



ANIファイルはWindowsのマルチメディアアプリケーションを収めたRIFF形式Resource Interchange File Format)という形式をとっております。
ANIファイルの読み込み手順は以下の通りです。

  1. マルチメディアファイル入出力関数を使って、ANIファイルを開きます。
  2. RIFFチャンクに進入して、ACONチャンクを探します。
  3. LISTチャンクに進入して、INFOチャンクをを探します。
  4. INFOチャンクに進入して、INAMチャンクIARTチャンクを読み込みます。
  5. INFOチャンクから退出して、anihチャンクrateチャンクを読み込みます。
  6. ヘッダーフラグがANI_FLAG_SEQUENCEの場合、seqチャンクを読み込みます。
  7. LISTチャンクに進入して、framチャンクを探します。
  8. フレームの数だけiconチャンクを読み込み、アイコンまたはカーソルを作成します。
  9. framチャンクから退出します。
  10. RIFFチャンクから退出します。

...続きを読む

ANIファイルの動画の再生



前回の「ANIファイルの読み込み」で作成したCANIFileクラスを、実際に動かしてみます。動画を動かすのに必要なタイマーとして、マルチメディアタイマーを使用するため、CMMTimerクラスを独自に作成しました。そしてANIファイルを読み込んで作成したCANIFileクラスはこのCMMTimerクラス基底クラスとして継承することにして、更にタイマーに関連したメンバー変数/関数をいくつか追加しました。尚タイマーイベント処理CMMTimerクラスOnTimer関数オーバーライドしたCANIFileクラスOnTimer関数アニメーションステップ値を変更した後、同じくCANIFileクラスのメンバー関数であるInvalidateOwnerWindow関数によりMFCビュークラスOnDraw関数を呼び出して、画像を再描画させています。

...続きを読む

アニメーションリソースの読み込み



アニメーションリソース(RT_ANICURSOR/RT_ANIICON)の内容はANIファイルと同じ構成なので、「ANIファイルの読み込み」で紹介した関数群に少し手を加えるだけで済む訳ですが、実際にアニメーションリソースVisualC++のリソースエディタで作成しようとすると、アニメーションリソースを処理する機能がないためか、データリソースに分類されてしまいます。そこで今回はANIファイルリソースに組み込む方法と、リソースから読み込むプログラムについて解説します。


...続きを読む

ANIファイルの書き込み



ANIファイルはWindowsのマルチメディアアプリケーションを収めたRIFF形式(Resource Interchange File Format)という形式をとっております。
ANIファイルの書き込み手順は以下の通りです。

  1. マルチメディアファイル入出力関数を使って、ANIファイルを開きます。
  2. ANIHEADER構造体が正しくない場合、新たに作成し直します。
  3. RIFF/ACONチャンクを作成して、その中に進入します。
  4. ファイル名か著者名がある場合は、INFOチャンクを作成してその中に進入します。
  5. ファイル名がある場合は、INAMチャンクを作成してその中に進入し、ファイル名を書き込んだ後、INAMチャンクから退出します。
  6. 著者名がある場合は、IARTチャンクを作成してその中に進入し、著者名を書き込んだ後、IARTチャンクから退出します。
  7. INFOチャンクから退出します。
  8. anihチャンクを作成してその中に進入し、ANIHEADER構造体を書き込んだ後、anihチャンクから退出します。
  9. 表示時間配列がある場合は、rateチャンクを作成してその中に進入し、表示時間配列を書き込んだ後、rateチャンクから退出します。
  10. ヘッダーフラグがANI_FLAG_SEQUENCEの場合、seqチャンクを作成してその中に進入し、シーケンスデータを書き込んだ後、seqチャンクから退出します。
  11. framチャンクを作成して、その中に進入します。
  12. iconチャンクを作成してその中に進入し、リストに格納されたCGroupIconクラスiconチャンクに書き込んだ後、iconチャンクから退出します。この作業をフレームの数だけ繰り返します。
  13. framチャンクから退出します。
  14. RIFFチャンクから退出します。


    ...続きを読む

すべての記事一覧

ホームへ戻る > 2010年10月

タグクラウド
ブロとも申請フォーム

この人とブロともになる

ブロとも一覧

このページの先頭へ戻る