Screenshot mit SDL



  • Hallo Community,
    ich würde gerne (am besten mit SDL) mit C++ unter Linux einen Screenshot vom aktuellen Bild machen, also von dem, was auf dem Bildschirm zu sehen ist, um dann mit dem erhaltenem Surface zu arbeiten.

    Wie kann ich das umsetzen?



  • http://www.libsdl.org/pipermail/sdl/2000-September/030012.html

    ansonsten sollte dir Google relativ gut weiterhelfen können 🙂

    mfg.



  • Der Quellcode funzt bei mir nicht...
    Das einzige was ich geändert habe ist statt

    pixels = malloc(3 * screen->w * screen->h);
    
    pixels = (unsigned char*)malloc(3 * screen->w * screen->h);
    

    da der Comiler sonst einen Fehler ausgibt.
    Das Ergebnis ist ein leeres Bitmap.

    Ich denke es liegt daran, dass ich OpenGL nicht richtig starte, oder?
    Wie initialisiere ich OpenGL richtig, damit ich mit der Funktion arbeiten kann?

    [edit]was fürn Quatsch....hab den Code etwas genauer betrachtet und weiß jetzt worans liegt, du hast mich missverstanden bzw ich hab mich unverständlich ausgedrückt, und zwar möchte ich einen Screenshot von der aktuellen Arbeitsfläche, mit allen Fenstern, Taskleiste etc. So als würde ich auf die Taste "Druck" drücken (KDE startet dann zB den KSnapshotViewer, Windows kopiert einen Screenshot in die Zwischenablage), ich möchte nicht das Bild meiner SDL-Szene speichern, zumal ich garkeine habe.[/edit]



  • hat sich erledigt:
    Ich habe mir den Code von KSnapshot angeguckt und benutz jetzt Qt um mit QPixmap::grabWindow(qt_xrootwin()) eine Pixmap vom Bildschirm zu erhalten.


Anmelden zum Antworten