如何在视频媒体上插入字体或者图片(有点难....希望有解)(96分)

  • 主题发起人 主题发起人 dafu2
  • 开始时间 开始时间
D

dafu2

Unregistered / Unconfirmed
GUEST, unregistred user!
   最近在学习DIRECTSHOW,感觉其功能确实强大,可惜没有DELPHI的DEMO,虽然DSPACK也有一些DEMO,说实话那些应用很简单,真正实用的DEMO太少了.
   其实把SDK下的DEMO转成DELPHI不是太难,主要是C++程序的流程清楚就可以了.后悔读书时候C++没有学好!

   我把SDK下的TICKER转成DELPHI后,编译没有问题,可是运行总是有异常,不知道那位兄台有搞过象TICKER一样,在视频上插入字符/图片等等.我知道DFW的高手不少,可是愿意出招的高手好像越来越少了啊!

   过一段时间我把自己所学放到DFW和大家分享,共同进步,记住一个人的力量是有限的!
 
偶也想机道
 
delphi + DSPACK

CODE

var
VMRBitmap: TVMRBitmap;
VideoWindow: TVideoWindow;
begin

VMRBitmap := TVMRBitmap.Create(VideoWindow);
VMRBitmap.LoadEmptyBitmap(VideoWindow.Width, VideoWindow.Height, pf24bit, clColorKey);
VMRBitmap.Source := VMRBitmap.Canvas.ClipRect;
VMRBitmap.Options := VMRBitmap.Options + [vmrbSrcColorKey];
VMRBitmap.ColorKey := clSilver;
VMRBitmap.Canvas.Brush.Color := clSilver;

// set up font properties for VMR bitmap canvas
end;





Code to display text:
CODE

VMRBitmap.Canvas.TextOut(0,0,'Some Text');
VMRBitmap.DrawTo(0, 0, 1, 1, TextAlphaVal);
 
dspack 包里也有例子, demos/vmr
 
谢谢lqcros兄,
测试成功,马上给分!
 
谢谢lqcros兄帮忙,下面的方法可以静态加字体,但是要让字体在视频中动起来好象很难。

procedure TFormPlayWin.VMRTextOut(AText: string);
begin

if AText = '' then

exit;
VMRBitmap := TVMRBitmap.Create(VideoWindow);
with VMRBitmap, Canvasdo

begin

LoadEmptyBitmap(VideoWindow.Width, VideoWindow.Height, pf24bit, clSilver);
Source := VMRBitmap.Canvas.ClipRect;
Options := VMRBitmap.Options + [vmrbSrcColorKey];
ColorKey := clSilver;
Brush.Color := clSilver;
//clSilver和背景容为一体
Font.Color := clLime;
Font.Style := [fsBold];
Font.Size := 30;
Font.Name := 'Arial';
TextOut(0, 0, AText);
DrawTo(0, 0, 1, 1, 0.5);
end;


VMRBitmap.Free;
end;
 
dspack里面有一个例子可以加gif动画
VMR/Mixer

其实也可以用他直接叠加一个小视频
 
后退
顶部