HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0201
動画の上に文字・画像を表示させる方法3解決


リンク

2014/2/1(Sat) 10:17:23|NO.59585

mciで再生した動画の上に文字・画像を表示させたいのですが、
通常、mciで再生した動画の上に文字・画像を表示させることは出来ません。


①別ウィンドウで動画を再生
②PrintWindowでbufferにコピー
③bufferからgcopyでメインウィンドウにコピー
④メインウィンドウに文字・画像を表示
というのを試してみましたが、
動画再生用のウィンドウを常に表示しないと、上手くコピーできません。



//こちらのソースコードを少し、改変させていただきました。 //http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+201001/10030013.txt #uselib "user32.dll" #func PrintWindow "PrintWindow" int, int, int #func SetWindowLong "SetWindowLongA" int, int, int #func ShowWindow "ShowWindow" int, int mainHwnd = hwnd Screen 1,1280,720: bgscrHWnd = hwnd//動画再生用のウィンドウを作成 SetWindowLong hwnd, -8 /* = GWL_HWNDPARENT */, mainHwnd ShowWindow hwnd, 5 /* = SW_NORMAL */ Dialog "",16,""//動画を開く mci "open "+refstr+" alias 動画"//動画再生-ここから mci "window 動画 handle "+hwnd mci "play 動画 from 0 notify"//動画再生-ここまで // IEの画面を取得するためのバッファ buffer 2,1280,720 : bufferHDc = hdc// 動画の画面を取得するためのバッファ Screen 0,1280,720//メインウィンドウ *mainloop gsel 2 : PrintWindow bgscrHWnd, hdc, 1// Screen 1の内容をbufferに描画する。 gsel 0 :pos 0,0: gcopy 2, 0, 0, 1280, 720// bufferの内容をscreenにcopyする pos 0,0:mes "メッセージ" await goto *mainloop

他にも方法がないかと考えてみたのですが、
思い浮かびませんでした。

どうか、皆様の知恵をお貸しいただけないでしょうか。
よろしくお願いします。



この記事に返信する


MillkeyStars

リンク

2014/2/1(Sat) 11:28:32|NO.59592

単純に、半透明ウィンドウを作って、ウィンドウに重ねればいいんじゃないかな。
便利なoncmd 命令もあるんだし、動画ウィンドウと文字・画像ウィンドウとの連携は簡単かと。



Tetr@pod

リンク

2014/2/1(Sat) 13:43:35|NO.59596




リンク

2014/2/2(Sun) 11:26:50|NO.59609

皆さん、ありがとうございます。
半透明ウィンドウを重ねる方法を、試してみます。



ONION software Copyright 1997-2025(c) All rights reserved.