FrameFilterImpl
変換フィルタの実装はこのクラスから派生する必要があります。
FrameFilterImpl と FrameUpdateFilterImpl
FrameFilterImplを継承したフィルタはそのtransformクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::transform Methodメソッド内で画像データをソースからディスティネーションフレームにコピーします。
FrameUpdateFilterImplクラスライブラリリファレンス>クラス>FrameUpdateFilterImplを継承したフィルタはupdateInPlaceクラスライブラリリファレンス>クラス>FrameUpdateFilterImpl>FrameUpdateFilterImpl::updateInPlace Methodで受け取ったシングルバッファの分析・操作を行います。
タスクに応じて上記の2つを使い分けることが推奨されます。
実装
変換フィルタの取得には最低条件として以下を実装する必要があります。
フィルタの振舞をカスタマイズするために以下をオーバーライドすることが可能です。
- notifyStartクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::notifyStart Method
- notifyStopクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::notifyStop Method
- checkInputTypeクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::checkInputType Method
- checkTransformTypesクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::checkTransformTypes Method
変換フィルタにダイアログボックスを追加するにはIFrameFilterクラスライブラリリファレンス>クラス>IFrameFilterよりメソッドをオーバーライドする必要があります。
IFrameFilter::getAvailableParametersクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::getAvailableParameters Method, IFrameFilter::setParameterクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::setParameter Method , IFrameFilter::getParameterクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::getParameter Method を使ってクエリ・操作できるパラメータを登録するには以下を使用します。
- addBoolParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addBoolParam Method
- addLongParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addLongParam Method
- addFloatParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addFloatParam Method
- addStringParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addStringParam Method
- addDataParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addDataParam Method
FrameFilterImpl から継承させるにはテンプレートのパラメータとして導出クラスの名前を使用します。
class MyFilter
: public DShowLib::FrameFilterImpl <MyFilter>
{
// ...
};
FrameFilterImplより継承したすべてのクラスは静的メソッドgetStaticFilterInfoを持たなければなりません。これはフィルタの情報を保持するFilterInfoクラスライブラリリファレンス>構造体>FlterInfo Structure 構造体を返すものです。
public:
// FrameFilterImpl の実装
static DShowLib::FilterInfo getStaticFilterInfo();
メソッドの実装については フレームフィルタの記述: 二値化処理プログラマーズガイド>フレームフィルタの記述: 二値化処理をご参照ください。
インフォメーション
ヘッダファイル: tisudshl.h
ネームスペース: DShowLib
IC Imaging Control 3.0より導入