FREEIMAGE: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:
*Freeing the destination image or source image will result in the display page being selected instead.
*Freeing the destination image or source image will result in the display page being selected instead.
*'''Invalid image handle values of -1 or 0 cannot be freed or an [[ERROR Codes|"Illegal Function" error]] will occur.''' Check the handle value first.
*'''Invalid image handle values of -1 or 0 cannot be freed or an [[ERROR Codes|"Illegal Function" error]] will occur.''' Check the handle value first.
* '''[[SCREEN]] modes in use cannot be freed or an [[ERROR Codes|"Illegal Function" error]] will occur.''' Change SCREEN modes before freeing.  
* '''[[SCREEN]] modes in use cannot be freed or an [[ERROR Codes|"Illegal Function" error]] will occur.''' Change SCREEN modes before freeing.
*Once a specific image handle is no longer used or referenced by your program, it can be freed with [[_FREEIMAGE]].
*Once a specific image handle is no longer used or referenced by your program, it can be freed with [[_FREEIMAGE]].
*  '''Images are not deallocated when the [[SUB]] or [[FUNCTION]] they are created in ends. Free them with [[_FREEIMAGE]].'''
*  '''Images are not deallocated when the [[SUB]] or [[FUNCTION]] they are created in ends. Free them with [[_FREEIMAGE]].'''
Line 22: Line 22:
{{CodeStart}}
{{CodeStart}}
s& = {{Cl|_LOADIMAGE}}("SPLASH.BMP",32)  'load 32 bit(24 BPP) image
s& = {{Cl|_LOADIMAGE}}("SPLASH.BMP",32)  'load 32 bit(24 BPP) image
{{Cl|IF}} s& < -1 THEN {{Cl|SCREEN (statement)|SCREEN}} s&  'use image as a 32 bit SCREEN  
{{Cl|IF}} s& < -1 THEN {{Cl|SCREEN (statement)|SCREEN}} s&  'use image as a 32 bit SCREEN
{{Cl|_DELAY}} 6                          'display splash screen for 6 seconds
{{Cl|_DELAY}} 6                          'display splash screen for 6 seconds
{{Cl|SCREEN (statement)|SCREEN}} 0      'MUST change screen mode before freeing a SCREEN image!
{{Cl|SCREEN (statement)|SCREEN}} 0      'MUST change screen mode before freeing a SCREEN image!
{{Cl|IF}} s& < -1 THEN {{Cl|_FREEIMAGE}} s&  'handle value MUST be less than -1 or error!
{{Cl|IF}} s& < -1 THEN {{Cl|_FREEIMAGE}} s&  'handle value MUST be less than -1 or error!
{{Cl|CLS}}  
{{Cl|CLS}}
{{CodeEnd}}
{{CodeEnd}}
: ''Note:'' A valid image file name must be used by [[_LOADIMAGE]] or the invalid handle memory value will not need to be freed.
: ''Note:'' A valid image file name must be used by [[_LOADIMAGE]] or the invalid handle memory value will not need to be freed.

Revision as of 01:41, 23 January 2023

The _FREEIMAGE statement releases the designated file image created by the _LOADIMAGE, _NEWIMAGE or _COPYIMAGE functions from memory when they are no longer needed.


Syntax

_FREEIMAGE [handle&]


Description

  • If handle& is omitted, the current destination image is freed from memory.
  • Freeing the destination image or source image will result in the display page being selected instead.
  • Invalid image handle values of -1 or 0 cannot be freed or an "Illegal Function" error will occur. Check the handle value first.
  • SCREEN modes in use cannot be freed or an "Illegal Function" error will occur. Change SCREEN modes before freeing.
  • Once a specific image handle is no longer used or referenced by your program, it can be freed with _FREEIMAGE.
  • Images are not deallocated when the SUB or FUNCTION they are created in ends. Free them with _FREEIMAGE.
  • It is important to free unused or unneeded images with _FREEIMAGE to prevent memory overflow errors.
  • Do not try to free image handles currently being used as the active SCREEN. Change screen modes first.


Examples

Example: Loading a program splash screen and freeing image when no longer necessary:

s& = _LOADIMAGE("SPLASH.BMP",32)  'load 32 bit(24 BPP) image
IF s& < -1 THEN SCREEN s&   'use image as a 32 bit SCREEN
_DELAY 6                          'display splash screen for 6 seconds
SCREEN 0       'MUST change screen mode before freeing a SCREEN image!
IF s& < -1 THEN _FREEIMAGE s&  'handle value MUST be less than -1 or error!
CLS
Note: A valid image file name must be used by _LOADIMAGE or the invalid handle memory value will not need to be freed.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link