OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

Delphiでビデオキャプチャー画像の上にビットマップを重ねたい

  • 困ってます
  • 質問No.141327
  • 閲覧数403
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 50% (1/2)

プリクラもどきのようなアプリを作ることになりまして,そのため,とりあえずコンポーネントを探してきて,Delphi Super PageにあったTVideoというコンポーネントで,ビデオ入力の画面への表示はできるようになりました。
コンポーネントの機能で,クリップボードやビットマップへの書き出しが可能なので,撮影した後の処理は自力でできると思っているのですが,プリクラもどきであるので,「キャプチャーされて流れている映像の上にビットマップを重ねたい」のです。
透明色を設定してあるビットマップのフレームをメニューから選択して,撮影するときにビデオ入力を画面に表示して,その上にフレームを重ねたいということです。
しかし,コンポーネントのエリアにTImageを重ねても,何をしても,キャプチャー画面が最上位に来てしまいます。高速描画なとこなのでそうなってるのだとは思うんですが,ビットマップを重ねる方法や,その他の実現方法などありましたら教えてください。
VFWを直接いじればいいんでしょうが,VCLしか使えてないような人間なので。

開発環境は,Delphi 3.1です。今は6のPersonalを使っていますが,コンポーネントが対応していないので。
よろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 37% (331/872)

こんにちは、honiyonです。  フレームを TBitmapオブジェクトに入れて、 Transparentをtrueにして下さい。  あとは、キャプチャ画像の入っている画像オブジェクトに対して Drawしてあげるだけで出来ると思います。(多分キャプチャ画像も Bitmapでないと失敗するかも?) 例) FrameCG.LoadFromFile('FRAME.BMP' ...続きを読む
こんにちは、honiyonです。

 フレームを TBitmapオブジェクトに入れて、 Transparentをtrueにして下さい。
 あとは、キャプチャ画像の入っている画像オブジェクトに対して Drawしてあげるだけで出来ると思います。(多分キャプチャ画像も Bitmapでないと失敗するかも?)
例)
FrameCG.LoadFromFile('FRAME.BMP');
FrameCG.Transparent := true;
FrameCG.TransparentColor := clWhite;
CaptureCG.Canvas(0, 0, FrameCG);

 ヘルプで TBitmapオブジェクトの TransparentやTransparentColorを参照してみてください。

 参考になれば幸いです(..
補足コメント
i_ogi

お礼率 50% (1/2)

回答ありがとうございます。
しかしビデオキャプチャーのコンポーネントの方に,Canvasが無いと言われちゃうんです。
なんか無理そうなので,少々(というかかなり)強引にコンポーネント側のSavetoDIBでビットマップ書き出し -> Imageに読み込み,で,教えてもらったようにDrawしてます。フレームレートが10から5くらいで十分なので,速度的にもついてきていて。イベントに使うだけだしいいや。と投げてます。^^;
いろいろいじるのは,まだ出来ないので...
せめてクリップボード経由で読み込むようにはするつもりです。

どうもお手数おかけしました。m(__)m
投稿日時 - 2001-09-27 17:45:31


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ