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!! :allright: