The _NEWIMAGE Function prepares a window image surface and returns the handle value.
- Minimum screen dimensions are Width& >= 0, Height& >= 1 measured in pixels.
- BPPmode& is either a QB type screenmode(0 to 2 or 7 to 13) or 256 colors or 32 bit(high color) compatible.
- If BPPmode is omitted, an image will be created in the same BPP mode as the current destination image.
- Valid LONG handle returns are less than -1. Invalid handles equal -1 so a zero value is also invalid.
- You can create any sized window(limited by OS) using this function.
- To view the image handle, just use SCREEN handle$. Even if another procedure changes the screen mode and clears the screen, the image can be restored when it is done by using the SCREEN handle mode.
- It is IMPORTANT to free unused or uneeded images with _FREEIMAGE to prevent CPU memory overflow errors!
Example 1: Shrinking a SCREEN 0 text window's size:
Example 2: Creating an 800 by 600 window version of SCREEN 12 with 256 colors (text 37 X 100):
Example 3: Setting up a SCREEN with _NEWIMAGE for page flipping in QB64.
SCREEN _NEWIMAGE(640, 480, 256), , 1, 0
Example 4: Switching between two different SCREEN modes
_TITLE "Switching SCREEN modes" SCREEN _NEWIMAGE (800, 600, 256) mode1& = _DEST 'get current screen mode handle mode2& = _NEWIMAGE (300, 200, 13) _DEST mode2& 'prepare small window COLOR 10: LOCATE 10, 13: PRINT "mode2& = "; mode2& COLOR 13: LOCATE 16, 16: PRINT "First" _DEST mode1& 'work in main window LOCATE 5 FOR c = 1 TO 248 Color c: PRINT c; NEXT COLOR 12: LOCATE 20, 44: PRINT "mode1& = "; mode1& COLOR 11: LOCATE 30, 34: PRINT "Press a key to goto Pop-up Window" DO: SLEEP: LOOP UNTIL INKEY$ <> "" SCREEN mode2& 'switch to small window DO: SLEEP: LOOP UNTIL INKEY$ <> "" SCREEN mode1& 'back to main window COLOR 12: LOCATE 37, 43: PRINT "One more time!" DO: SLEEP: LOOP UNTIL INKEY$ <> "" SCREEN mode2& 'back to small window COLOR 14: LOCATE 16, 16: PRINT "LAST "
See Example: SAVEIMAGE (Bitmap Screenshots)