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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0525
教えて★蔵動画の上で落書きできます?4未解決


教えて★蔵

リンク

2008/5/25(Sun) 15:35:00|NO.16106

aviやwmvの動画上でマウスで落書きできるようにするにはどうしたら良いのでしょうか?
だれか教えて;



この記事に返信する


jill

リンク

2008/5/25(Sun) 20:54:59|NO.16112

かなり難しいんじゃないでしょうか?
やり方としては、先ず落書き用のスクリプトを作成して、ウインドウ内にプレイヤーを
設置するのですが、おそらくそのままだと、プレイヤーの上から書いても(書けないかな?)
直ぐに更新されて消えてしまうと思うので、子ウインドウ化して設置しないと駄目かもしれません。

その辺が出来たら、今度は書き始めのクリック押した時の座標(a)、フレーム番号(1)を取得し、
今度は、次フレーム(2)に移った時の座標(b)を取得して、フレーム(A)をbmp等で抜き出し先ほどの
座標(a)から(b)間に落書き情報を追加して、再度同フレームと書き換える。
これを延々と繰り返すスクリプトを作る必要があります。

動画にあわせてフレームレート等を考慮しなければならないので、ちょっとやそっとじゃ出来ないと思います。
私には出来ません。動画を自由に編集できるプラグイン等あれば比較的楽に出来るかもしれませんが、
HSPで作るには相当な知識と動画に精通していなと無理だと思います。

保存しないで上から絵を書くだけの行為ならプレイヤーの子ウインドウ化などで試してみてください。
確かAviutilというツールで望みの事が出来たと思います。



f

リンク

2008/5/25(Sun) 21:15:04|NO.16114

・・・。
まず、出来る事から始めなさい・・・。



yamineko

リンク

2008/5/25(Sun) 22:36:58|NO.16122

たぶんですが、hmmdllというプラグインを使うと、
可能かもしれません。

hmmは、動画をフレーム単位で描画するので、
もう一つバッファを用意して、落書きはそっちに書き込んで、

1フレーム単位で重ね合わせたりすれば、
似たような事になるのではないでしょうか?

あくまで、大昔にちょっといじっただけのプラグインなので、
外れてたらごめんなさい。

でも、落書きした後どうするのかが気になる…



inovia

リンク

2008/5/27(Tue) 18:26:14|NO.16179

苦肉の策です。(笑)
オーバーレイの機能を利用していますので、動画を2つオープンすると無効になります。
Vistaでは使えない気もします・・・

title "落書きw" mref mr,67 //ウィンドウハンドル取得 onexit *e //終了時に移動 onclick gosub *omake dialog "mpg;*.avi;*.wmv;*.asf;*.3gp;*.mp4;*.flv",16,"動画など" //↑環境依存 if stat=0:end //未選択時に終了 x=0:y=0:ax=640:ay=480 //動画の左上座標、動画サイズ fname=refstr //ファイル名を代入 //オーバーレイで再生 mci "open \""+fname+"\" alias f" if stat=-1 : dialog "Open err":end //オープンエラー mci "window f handle "+mr.13 //ウィンドウハンドルをMCIに送信 mci "put f destination at "+x+" "+y+" "+ax+" "+ay //ウィンドウに貼り付け mci "play f" // mci "stop f" gsel 0,-1 screen 2,640,480 //2つ目のウィンドウ作成 title "落書きw 右クリックしてみそ" color 16,0,16 //オーバーレイはこの色だと下が透ける boxf //塗りつぶし color 255,255,255 //これは落書き用 repeat nx=ginfo_wx1:ny=ginfo_wy1 //ウィンドウの移動 line mousex, mousey //落書き wait 1 if ginfo_wx1!=nx{ //移動を検出したらウィンドウ0と2を同期させる if ginfo_wy1!=ny{ nx=ginfo_wx1:ny=ginfo_wy1 //座標再取得 gsel 0,0 //0をアクティブに width 640,480,nx,ny //ID0をID2と同じ座標に gsel 0,-1 //ID0を非アクティブ gsel 2,0 //ID2をアクティブ } } loop *omake //「おまけ」右クリックで色を変更 if wparam=2{ dialog "",32,"" if stat=0{ color 255,255,255 }else{ color ginfo_r,ginfo_g,ginfo_b } } return //wait 1000 *e //コレを呼ばないと大変なことに・・・ mci "stop all" //MCIはALLで全部クリアできます。 mci "close all" end



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