Seite 1 von 2

Screenshot mit PB machen und als Datei abspeichern?

Verfasst: 04.08.2006 20:31
von Kyoko12
Hi,

ich hab hier n Problem: ich will mit PB einen Screenshot machen, hab aber keinen Schimmer, wie das geht. Gibts vll. ne Userlib, die mir ermöglicht, nen Screenshot zu machen und diesen als Bitmap, JPEG, PNG, TIFF, oder GIF graphik abzuspeichern? Bevorzugt JPEG.

Danke im Vorraus
Kyoko12

Verfasst: 04.08.2006 20:39
von ts-soft
Im CodeArchiv hab ich min. 15 Treffer bei Screenshot. Hier im Forum hab ich nicht getestet.

Verfasst: 04.08.2006 20:58
von Kyoko12
Also, im Code Archiev find ich nur einen Eintrag, udn der heißt Transparent Screenshot...meiner soll aber nicht transparent sein. Hier im Forum hab ich auch nix passendes gefunden.

mfg
Kyoko12

Verfasst: 04.08.2006 21:01
von Ja!
Hi,

das ist recht einfach, es gibt einen Befehl dafür.


Aus der Hilfe:

Code: Alles auswählen

GrabSprite(#Sprite, x, y, Breite, Hoehe [, Modus])

Fotografiert ("grab") den Bildschirminhalt im Bereich von (x, y, Breite, Höhe) und erstellt daraus ein neues #Sprite. In der Kombination von Grabsprite und SaveSprite() ist es somit z.B. möglich, einen Screenshot eines Spiels zu erstellen. 
Gruß
Udo

Verfasst: 04.08.2006 21:04
von Kyoko12
ah, danke ^^

Verfasst: 04.08.2006 21:10
von ts-soft
>> Also, im Code Archiev find ich nur einen Eintrag
Mir zeigt der CodeArchiveViewer genau 10 an :mrgreen:
zum Beispiel diesen hier:

Code: Alles auswählen

; www.purearea.net (Sourcecode collection by cnesm)
; Author:
; Date: 22. November 2003

Procedure MakeDesktopScreenshot(ImageNr,x,y,Width,Height) 
   hImage = CreateImage(ImageNr,Width,Height) 
   hdc    = StartDrawing(ImageOutput()) 
   DeskDC = GetDC_(GetDesktopWindow_()) 
      BitBlt_(hdc,0,0,Width,Height,DeskDC,x,y,#SRCCOPY) 
   StopDrawing() 
   ReleaseDC_(GetDesktopWindow_(),DeskDC) 
   ProcedureReturn hImage 
EndProcedure

MakeDesktopScreenshot(0, 0, 0, 1024, 768) 
SaveImage(0, "C:\DesktopScreenshot.bmp")
Recherieren gehört auch zu den wichtigen Fähigkeiten eines Programmierers :wink:

Verfasst: 04.08.2006 21:12
von Kyoko12
hm...komisch...mir zeigts echt nur einen an...

naja, egal.

Mit diesem Code hab ihc n Problem...die Prozedur gibt hImage zurück, das ist doch der Identifier des neuen Bildes oder?? Wie kann ich dieses Bild jetzt speichern???

sorry das ich so nervig bin, brauch das echt dringend ^^

mfg
kyoko12

Verfasst: 04.08.2006 21:15
von ts-soft

Code: Alles auswählen

hdc    = StartDrawing(ImageOutput(0))
Nur die 0 einfügen

Du übergibst doch die ImageNr., erster parameter. Die Rückgabe kannste
ignorieren, bzw. nur zum testen ob <> 0, also Erfolg

Verfasst: 04.08.2006 21:20
von Kyoko12
hää?? :shock:

kapier ich immer noch nicht...ImageOutput(0)?? Bei mir steht in der hilfe, das ImageOutput() gar keine Parameter hat?

Und wenn mir der Code den Screen dann in ein Image zeichnet, wie speichere ich das dann zB als JPEG-Datei ab??

danke für eure hilfe

mfg
kyoko12



ah, sorry, hatte übersehen dass die lösung ja schon im code oben steht

diesen Post einfach ignorieren

Verfasst: 04.08.2006 21:28
von ts-soft
>> kapier ich immer noch nicht...ImageOutput(0)??
Dann schreib mal bitte Deine PB-Version in die Signatur, ansonsten gehe ich
von der aktuellen Version aus, dort ist die 0 erforderlich!