Windows DDB (Device-Dependent Bitmap), or Windows BMP v1, is a graphics format associated with Microsoft Windows 1.0. It has only a little in common with the BMP formats that succeeded it.
The term DDB is also used for the in-memory BITMAP structure used by the Windows API. This structure is not necessarily the same as the file format described in this article. (Maybe it is the same on old versions of Windows?)
Bitmap files in this format can be found in the Windows 2 DDK.
This format is not the format saved by Windows 1.0 Paint. It is generated by ICONEDIT, the Windows 1.x icon / cursor / bitmap editor.
Files begin with a 16-byte header, the last 14 bytes of which correspond to the BITMAP structure:
|0x0000||WORD||File type: 0x0002, RT_BITMAP. Top bit set if discardable.|
|0x0002||WORD||bmType: Always 0x0000 for main memory bitmap|
|0x0004||WORD||bmWidth: Width in pixels|
|0x0006||WORD||bmHeight: Height in pixels|
|0x0008||WORD||bmWidthBytes: Width of a line in bytes|
|0x000A||BYTE||bmPlanes: Number of planes in bitmap|
|0x000B||BYTE||bmBitsPixel: Number of bits per pixel|
|0x000C||DWORD||bmBits: Always zero in disk file|
This is followed by the bitmap, in top-to-bottom order, with bmWidthBytes bytes per line.
The WMF specification defines a "Bitmap16" structure that seems to be this format, though without the "File type" field.
- The MSWrite decoder from libwps appears to have source code for reading embedded DDB objects.