Quote: "Lilith suggested dbGetImage () to get an image directly from the screen, the first parameter is the current bitmap (right?)"
No. The first parameter is the ID of the image to which the current bitmap will be copied (in memory). The current bitmap is not a parameter because the system knows what the current bitmap is. It is the screen by default, but you can change it with dbSetCurrentBitmap.
So, saving a screenshot should be as easy as dbGetImage (give an ID number) and dbSaveImage (same ID number).
EDIT: This method works for 3D scenes, but the only time when I tried for a screen containing only 2D sprites, the sprites were not shown on the screenshot.
EDIT again: one more thing. Whenever I try to get a screenshot with dbGetImage from the screen, the image comes out distorted, it is saved to disk with a different number of pixels than the resolution of the display. I don't know a solution for this yet. But if you make a sprite from the image, then you can scale the sprite if necessary.