BLOAD - QB64 Wiki


From QB64 Wiki

Jump to: navigation, search

BLOAD loads a binary graphics file created by BSAVE to an array.


BLOAD Filename$, VARPTR(ImageArray%(index))


  • Filename$ is the name of the file that the image should be BSAVEd to.
  • ImageArray%(index) is the Integer array start index that holds the image you want to save.


  • There MUST be an Integer array of adequate size (up to 26K) to hold the graphic data!
  • A DEF SEG pointing to the array is required. DEF SEG = VARSEG(ImageArray%(index))
  • index is the starting image element of the Array. Can also include RGB color settings at the start index.
  • Fullscreen images in SCREEN 12 require 3 file BLOADs. A 26K array can hold 1/3 of screen.
  • Custom RGB color settings can be embedded(indexed) at the start of the image array.
  • BLOAD can be used to load any array that was saved with BSAVE, not just graphics.
  • Array sizes are limited to 32767 Integer elements due to use of VARPTR in QB and QB64!.
  • QB64 can load larger arrays directly to and from binary files using PUT # and GET # without BLOAD.

Example 1: Loading data to an array from a BSAVED file.

DEF SEG = VARSEG(Array(0)) BLOAD filename$, VARPTR(Array(LBOUND(Array))) ' changeable index DEF SEG

Explanation: Referance any type of array that matches the data saved. Can work with Integer, Single, Double, Long, fixed length Strings or TYPE arrays. LBOUND determines the starting offset of the array or another index could be used.

Example 2: Using a QB default colored image.

DEF SEG = VARSEG(Image%(0)) ' pointer to first image element of an array BLOAD FileName$, VARPTR(Image%(0)) ' place data into array at index position 0 PUT(Col, Row), Image%(0), PSET ' Put the image on the screen from index 0 DEF SEG

Note: PSET is used as a PUT action that places the image over any background objects.

See also:

Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
Personal tools