FireBirdLib - Topfield TMS PVR TAP Programming Library
BMP_WriteHeader.c
Go to the documentation of this file.
1#include <unistd.h>
2#include "FBLib_av.h"
3#include "libFireBird.h"
4
5void BMP_WriteHeader(int FileHandle, int width, int height)
6{
8
9 struct BMP_HEAD head;
10 struct BMP_INFO info;
11 dword i, size, rowlength;
12
13 if(FileHandle <= 0)
14 {
15 TRACEEXIT();
16 return;
17 }
18
19 // according to spec.: the rowlength must be a multiple of 4 bytes, if necessary fill up with zero-bytes
20 rowlength = (width*3%4==0) ? width*3 : ((width*3/4)+1)*4;
21
22 size = sizeof( head ) + sizeof( info ) + rowlength*height;
23
24 head.id[0] = 'B';
25 head.id[1] = 'M';
26 head.size_l = LE16( (size & 0xffff) );
27 head.size_h = LE16( (size >> 16) );
28 i = (sizeof( head ) + sizeof( info ));
29 head.offset_l = LE16( i & 0xffff );
30 head.offset_h = LE16( i >> 16 );
31
32 info.info_size = LE32( 40 );
33 info.width = LE32( width );
34 info.height = LE32( height );
35 info.plane = LE16( 1 );
36 info.bits_per_pixel = LE16( 24 );
37 info.compress = LE32( 0 );
38 info.img_size = LE32( rowlength*height );
39 info.x_res = 0;
40 info.y_res = 0;
41 info.color = 0;
42 info.icolor = 0;
43
44 write(FileHandle, &head, sizeof(head));
45 write(FileHandle, &info, sizeof(info));
46
47 TRACEEXIT();
48}
void BMP_WriteHeader(int FileHandle, int width, int height)
#define LE32(p)
Definition: libFireBird.h:164
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
#define LE16(p)
Definition: libFireBird.h:163
word offset_h
Definition: libFireBird.h:256
byte id[2]
Definition: libFireBird.h:251
word offset_l
Definition: libFireBird.h:255
word size_h
Definition: libFireBird.h:253
word size_l
Definition: libFireBird.h:252
long height
Definition: libFireBird.h:263
long compress
Definition: libFireBird.h:266
word plane
Definition: libFireBird.h:264
long img_size
Definition: libFireBird.h:267
long icolor
Definition: libFireBird.h:271
long color
Definition: libFireBird.h:270
long width
Definition: libFireBird.h:262
word bits_per_pixel
Definition: libFireBird.h:265
long info_size
Definition: libFireBird.h:261
long x_res
Definition: libFireBird.h:268
long y_res
Definition: libFireBird.h:269