如何将网络摄像头的大小从({1}}的默认值(640x360)更改为(160x120)作为新的默认值。
我正在使用this component
上的this page
。
答案 0 :(得分:3)
VFrames中有一个预定义的方法
var
cam:TVideoImage;
camlist:TStringList;
reslist:TStringList;
vp:TVideoProperty;
begin
camlist := TStringList.Create ;
reslist :=TStringList.Create;
cam := TVideoImage.Create;
cam.GetListOfDevices(camlist);
cam.SetDisplayCanvas(PaintBox1.Canvas);
cam.VideoStart(camlist.Strings[0]) ;
// important
cam.GetListOfSupportedVideoSizes(reslist);
ListBox1.Items := reslist;
cam.SetResolutionByIndex(0);
//specify your resolution by index using listbox index
//this will not only lists resolutions but also other features available , so be careful when selecting the index
end;
确保在视频开始播放后执行GetListOfSupportedVideoSizes
和SetResolutionByIndex
答案 1 :(得分:0)
在这个答案中我正在使用位图图像。
这会比之前略慢(但很难注意到)
我们将在每个计时器刻度(例如间隔= 100)上获取图像,将其分配给我们的图像框然后修改我们的尺寸,无论默认分辨率是什么,它都将获得默认尺寸图像(例如:640 * 480)在图像框中我们将改变尺寸。
uses
....
VFrames;
var
....
cam:TVideoImage;
implementation
procedure TForm6.FormCreate(Sender: TObject);
begin
cam := TVideoImage.Create;
image1.stretch := true ;
image1.height := 120 ;
image1.width := 160 ;
end;
procedure TForm6.Timer1Timer(Sender: TObject);
begin
cam.GetBitmap(Image1.Picture.Bitmap);
end;
procedure TForm6.Button1Click(Sender: TObject);
var
camlist:TStringList;
begin
camlist := TStringList.Create ;
cam := TVideoImage.Create;
cam.GetListOfDevices(camlist);
cam.VideoStart(camlist.Strings[0]) ;
end;