Entwickler-Ecke

Windows API - einen Teil des Screens in eine Bitmap kopieren?


delphijanka - Mi 08.03.06 16:51
Titel: einen Teil des Screens in eine Bitmap kopieren?
wie Titel schon sagt:
wie kann ich einen Teil des Screens in eine Bitmap kopieren, wobei also Anfangs- und Endkoordinaten des zu kopierenden Rechteckes gegeben sind?


AXMD - Mi 08.03.06 17:24

Schau dir mal Suche im MSDN BITBLT an oder such hier im Forum danach.

AXMD


Hux - Mi 08.03.06 17:26

Alsooo...,
n Screenshot kann man mit dieser FUnktion hier erstellen...(hab kein bock was zu schreiben, also hier ein Zitat von dsdt.info):


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure MakeScreenShot(const ATarget: TBitmap);
var
  DesktopDC: HDC;
begin
  DesktopDC := CreateDC('DISPLAY'nilnilnil);
  try
    ATarget.PixelFormat := pfDevice;
    ATarget.Width := Screen.Width;
    ATarget.Height := Screen.Height;
  
    BitBlt(ATarget.Canvas.Handle, 00, Screen.Width, Screen.Height, DesktopDC, 00, SRCCOPY);
  finally
    DeleteDC(DesktopDC);
  end;
end;


Als PArameter musst du z.B. die Image komponente angeben...


delphijanka - Mi 08.03.06 18:30

gehts aber nur bestimmten Teil kopieren, dafür muss auch ne Funktion geben, denn den ganzen Screen kopieren is ja einbissl zeitnotwendig, wenn man so in millisekunden spricht


AXMD - Mi 08.03.06 18:34

Und wieso änderst du nicht einfach die Parameter von Breite und Höhe entsprechend? :roll:

AXMD


delphijanka - Do 09.03.06 00:44

azo klar... :) Vielen Dank!