안녕하세요.....
화면을 캡처하는 것데요... 클릭보드에 관해 궁금한 것이 있어서 글을 올립니다.
다름이 아니라 1초에 1화면을 캡쳐를 해서 변수에 넘겨주는데요... 변수는 한번
돌때마다 초기화를 시켜주는 데....클릭보드안에 있는 현재 캡쳐된 내용을 넣겨준다음
초기화를 시키는 방법이을 몰라서요... 이렇게 글을 올립니다....
procedure TVideoForm.GetScreenCapture;
var
i: Integer;
Bmp: TBitmap;
Mem: TMemoryStream;
Jpg: TJPEGImage;
begin
capGrabFrame(ghCapWnd);
capEditCopy(ghCapWnd);
if ClipBoard.HasFormat(CF_BITMAP) then begin
try
Mem := TMemoryStream.Create;
Jpg := TJPEGImage.Create;
Bmp := TBitmap.Create;
Bmp.Assign(Clipboard);
Jpg.ProgressiveEncoding := True;
Jpg.CompressionQuality := 100;
Jpg.Assign(Bmp);
AdjustImageQuality(Bmp, Jpg);
Jpg.SaveToStream(Mem);
Mem.Position := 0;
FullJpgSize := 0;
OrgJpeg := GlobalAllocPtr(GHND, Mem.Size);
FillChar(OrgJpeg^, Mem.Size, 0);
if (Mem.Size>0) //then begin
and (Mem.Size<88000) then begin
FullJpgSize := Mem.Size;
Mem.Readbuffer(OrgJpeg^, FullJpgSize);
end;
Bmp.Free;
Jpg.Free;
Mem.Free;
finally
GoScreen;
end;
CurrentBmp := OrgJpeg;
SendNextBuf;
end;
end;