Help Center
Help CenterFreeBASICReference

GET/PUT image header example

Documentation

Example showing the two different headers used for image buffers.
Note: ImageInfo is provided as a simpler alternative to reading the image structures directly.

'' fbgfx.bi contains the necessary structures and constants for working

'' directly with image headers

#include "fbgfx.bi"



'' in lang fb, structures and constants are contained in the FB namespace

#if __FB_LANG__ = "fb"

Using FB

#endif





'' function to show info on an image

Sub show_image_info( ByVal img As Any Ptr )

    Dim As PUT_HEADER Ptr header ' IMAGE can also be use instead of PUT_HEADER

    Dim As Integer w, h, bpp, pitch



    header = img

    If( header->Type = PUT_HEADER_NEW ) Then



        Print "New style header"



        w = header->Width

        h = header->height

        bpp = header->bpp

        pitch = header->pitch



    Else



        Print "Old style header"



        w = header->old.width

        h = header->old.height

        bpp = header->old.bpp

        pitch = w * bpp



    End If



    Print "Image dimensions are " & w & "*" & h

    Print "Image uses " & bpp & " bytes for each pixel"

    Print "A row of image pixels takes " & pitch & " bytes"



End Sub





Dim As Any Ptr picture



ScreenRes 320, 200, 32



picture = ImageCreate( 10, 10, RGB(128, 192, 255) )



Put( 40, 40 ), picture, PSet



show_image_info( picture )



ImageDestroy picture



Sleep


NOTE: To use this code with an array, pass your array to the function, like this:

show_image_info( VarPtr( myarray( L ) ) )

where L is the lower bound of myarray().