File Formats
  • Audio
  • Video
  • Images
  • 3D & CAD
  • Documents
  • Data
  • Code
  • System
Images
  • Raster
  • Vector
  • Camera raw
  • Layered projects
  • HDR & scientific
  • Icons
  • Retro
  1. Home
  2. Images
  3. Raster
  4. BMP
  5. BA
.BMP
  • Overview
  • Windows bitmap (BM)
    • File header
    • DIB header
    • Colour spaces
    • Colour table
    • Bit masks
    • Pixel data
    • Compression
  • OS/2 bitmap array (BA)
  • OS/2 icon (IC)
  • OS/2 colour icon (CI)
  • OS/2 pointer (PT)
  • OS/2 colour pointer (CP)

.BMP

OS/2 bitmap array (BA)

Introduction

A bitmap array is a chain of bitmaps in one file, each made for a different screen. OS/2’s Presentation Manager used it so that one picture, icon or mouse pointer could carry versions for low and high resolution displays, and the system could pick the one that fitted best. Each entry is a short array header followed by a complete bitmap, icon or pointer.

Most OS/2 icon and pointer files are bitmap arrays, so these files are found with the extensions .ico and .ptr as well as .bmp.

Software

  • ArcaOS, the current OS/2, whose Icon Editor opens and saves them
  • Deark, which extracts each image (Windows, macOS, Linux)

Structure

The file is a linked list. Each array header gives the offset of the next one, and is followed straight away by the file header and DIB header of its own image, the same parts a BM bitmap uses. A colour icon or pointer adds its second file header there too. The pixel data of every image is found through the offset in its file header, and is usually stored after all the headers. All numbers are little-endian.

  1. 0Array header BA, size, offset of the next array header, display size14 bytes
    1. 14File header of the first image, with its own type such as BM, IC or CI14 bytes
    2. 28DIB header and colour table, then a second set for a colour icon or pointervaries
  2. offNextArray header for the next screen, and so on until offNext is 014 bytes
  3. …Pixel data for each image, at the offset in its file headervaries
An OS/2 bitmap array with its first entry opened up

Array header

OffsetSizeTypeNameDescription
02char[2]usTypeThe signature BA (42 41).
24u32cbSizeThe size of the header.
64u32offNextThe offset from the start of the file to the next array header, or 0 in the last one.
102u16cxDisplayThe width of the screen this image was made for, in pixels; 0 for any screen.
122u16cyDisplayThe height of that screen; 0 for any screen.

Telling it apart

The file starts with BA (42 41), and the two bytes at offset 14 are a second type code: BM, IC, CI, PT or CP. That type says what each entry holds. To list the entries, follow offNext from header to header until it is 0.

Also used for

  • Windows icon .ico
© 2026 fileformats.org About Contact Made by Lewpen