I've never tried writing a paint program in DB, so my comments are not from experience...
Basically, I would capture the screen 'drawing area' with Get Image as soon as the mouse button is pressed for drawing - in case it's required for a shape which can be adjusted. If just in drawing mode it can just be used for undo.
I would only have the mouse pointer 'identifier' as a sprite - everything else would be a pasted image. Set the sprite to automatically replace it's background as it moves.
The 'Stamp' effect should also be a pasted image - rather than a sprite.
When you position the image, put it in a loop where you paste the image you captured earlier, then the image at the mouse position, followed by a Sync:
Repeat
Paste Image BackgroundImgNum,0,0: Rem Background of drawing screen
Paste Image StampImgNum, MouseX, MouseY: Rem Rubber stamp image
Sync
Until MouseClick() = 1
Rem Now grab the new background image
By turning Sync On and setting Sync Rate 0, the use of the Sync will mean you don't see the screen redraws until after the stamp image is drawn and you can move it around, fixing it in place with the mouse button.
TDK_Man