c'est une question sur laquelle il faudrait au moins deux ou trois "leçons" complètes de mon tutorial. J'y réfléchis d'ailleurs.
Pour me limiter à deux indications, (je ne peux pas faire des cours particuliers et en même temps avancer mon tutorial!)
1) il faut arriver à créer un graphe qui part de la caméra.
La fonction de base que j'utilise par exemple dans CaptureFlux s'appuie sur un filtre FilterDV dont le BaseFilter est construite dans la fonction suivante:
function TdmCam.SetDriverMSDV:Boolean;
var i:integer;
begin
SysDevGlobal:= TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
for i:=0 to sysdevGlobal.CountFilters-1 do
if sysdevGlobal.filters[i].FriendlyName='Microsoft DV Camera and VCR';
then break;
if i<sysdevGlobal.CountFilters then begin
fg.active:=false;
FilterDV.BaseFilter.Moniker := SysDevGlobal.GetMoniker(i);
fg.Active:=true;
result:=true;
end else result:=false;
SysDevGlobal.free;
end;
2) pour capturer une image dans une bitmap, il faut arriver à inclure un filtre samplegrabber dans le graphe, puis à appeler la fonction:
samplegrabber1.getbitmap(b);
où b est la bitmap à charger. Mais tout cela reste assez complexe à réaliser. Courage, j'y suis bien arrivé et je ne suis qu'un amateur! Et à bientôt sur mon site pour la suite...
Paul Glagla
Les contributions de Paul Glagla