Seite 1 von 1
Fensterausschnitt als Image speichern...
Verfasst: 08.12.2014 10:43
von Ghosty1967
Hallo zusammen...
Ich suche einen Codeschnipsel um einen definierbaren (x, y, breite, höhe) Fensterinhalt in eine
Bitmap zu speichern. Ich habe das Forum schon durchsucht, finde aber leider nicht das passende.
Hätte da jemand einen Schnipsel für mich?!
__________________________________________________
Thread verschoben
Code, Tipps und Tricks>Windows
08.12.2014
RSBasic
Re: Fensterausschnitt als Image speichern...
Verfasst: 08.12.2014 10:49
von RSBasic
http://www.rsbasic.de/aktualisierung/wi ... stellen.pb
Die Funktion, die du anpassen musst, wäre: BitBlt_()
Informationen bezüglich der Parameterliste findest du hier:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
\\Edit:
Du bist im falschen Forum. In diesem Forum werden fertige Codes veröffentlicht, keine Fragen. *verschieb*
Re: Fensterausschnitt als Image speichern...
Verfasst: 08.12.2014 10:53
von Kiffi
ich habe auf Anhieb hier was gefunden:
http://www.purebasic.fr/english/viewtop ... 890#p49890
ein wenig angepasst sähe es so aus:
Code: Alles auswählen
EnableExplicit
;capture a piece of screen
Procedure.l CaptureScreen(Left.l, Top.l, Width.l, Height.l)
Protected dm.DEVMODE
Protected BMPHandle.l
Protected srcDC = CreateDC_("DISPLAY", "", "", dm)
Protected trgDC = CreateCompatibleDC_(srcDC)
BMPHandle = CreateCompatibleBitmap_(srcDC, Width, Height)
SelectObject_( trgDC, BMPHandle)
BitBlt_( trgDC, 0, 0, Width, Height, srcDC, Left, Top, #SRCCOPY)
DeleteDC_( trgDC)
ReleaseDC_( BMPHandle, srcDC)
ProcedureReturn BMPHandle
EndProcedure
Define ScreenCaptureAddress = CaptureScreen(100, 100, 300, 300)
If ScreenCaptureAddress
CreateImage(0, 300, 300)
StartDrawing(ImageOutput(0))
DrawImage(ScreenCaptureAddress, 0, 0)
StopDrawing()
SaveImage(0, GetTemporaryDirectory() + "Ghosty1967.bmp")
RunProgram(GetTemporaryDirectory() + "Ghosty1967.bmp")
EndIf
Grüße ... Peter
Re: Fensterausschnitt als Image speichern...
Verfasst: 08.12.2014 10:57
von Ghosty1967
WOW, das ging fixxxxx...
Werde ich direkt mal ausprobieren, vielen, vielen Dank!!
