はじめに
Advanced/W-ZERO3 [es]にはカメラが内蔵されています。前回の記事では、内蔵カメラを使って静止画撮影を行うところまで作成しました。今回は、独自のDirectShowフィルタを作成することにより画像をモノトーン加工し、撮影できるようにしてみましょう。
これまでの記事
- Advanced/W-ZERO3[es]で簡易音声レコーダを作ろう
- Advanced/W-ZERO3[es]で簡易音声レコーダを作ろう Part 2
- Advanced/W-ZERO3[es]でカメラアプリを作ろう
- Advanced/W-ZERO3[es]でカメラアプリを作ろう Part2
対象読者
以下のアプリケーションを開発したことがある人。
- C++言語を使ったアプリケーション
- Windows Mobile用アプリケーション
- COMを使ったアプリケーション
本稿はこちらの記事の続きです。
これまでの記事と重複する内容については割愛させて頂きました。WindowsMobile用DirectShowフィルタを作成したことの無い方はこちらの記事を先にお読みください。
モノトーン加工DirectShowフィルタの作成
フィルタの仕様
それではフィルタを作成していきます。作成するフィルタの仕様を表1に示します。
フィルタの種類 | トランスフォームフィルタ |
フィルタの名前 | Mono_Filter |
入力ピンの数 | 1 |
出力ピンの数 | 1 |
入力ピン/出力ピンのメディアタイプ | MEDIATYPE_Video |
入力ピン/出力ピンのサブメディアタイプ | MEDIASUBTYPE_RGB565 |
入力ピン/出力ピンのフォーマットタイプ | FORMAT_VideoInfo |
「トランスフォームフィルタ」とは、入力データに対してなんらかの処理を行い、結果を出力するフィルタのことです。従って、入力ピンと出力ピン、2つのピンが存在します。今回作成するフィルタは、入力ピンから受け取った画像を加工し、出力ピンから送出するフィルタですのでトランスフォームフィルタとなります。なお、処理の負荷を軽減するために、取り扱う画像フォーマットはRGB565形式とします。
MEDIASUBTYPE_RGB565
というサブメディアタイプで定義されています。