| 6 |
|
#ifndef _RAD_BMPFILE_H_ |
| 7 |
|
#define _RAD_BMPFILE_H_ |
| 8 |
|
|
| 9 |
< |
#include "tifftypes.h" |
| 9 |
> |
#include "tiff.h" /* needed for int32, etc. */ |
| 10 |
|
|
| 11 |
|
#ifdef __cplusplus |
| 12 |
|
extern "C" { |
| 41 |
|
/* but the color table should be filled by writer before open call */ |
| 42 |
|
RGBquad palette[3]; /* color palette (extends struct) */ |
| 43 |
|
} BMPHeader; |
| 44 |
– |
|
| 45 |
– |
/* color palette length */ |
| 46 |
– |
#define BMPpalLen(h) ((h)->bpp <= 8 ? 1<<(h)->bpp : 0) |
| 44 |
|
|
| 45 |
|
/* access to bit field triple */ |
| 46 |
|
#define BMPbitField(h) ((uint32 *)(h)->palette) |
| 47 |
|
|
| 48 |
|
/* info buffer access */ |
| 49 |
< |
#define BMPinfo(h) ((char *)((h)->palette + BMPpalLen(h))) |
| 49 |
> |
#define BMPinfo(h) ((char *)((h)->palette + (h)->nColors)) |
| 50 |
|
|
| 51 |
|
/* function return values */ |
| 52 |
|
#define BIR_OK 0 /* all is well */ |
| 138 |
|
|
| 139 |
|
/* open input file */ |
| 140 |
|
#define BMPopenInputFile(fn) BMPopenReader(&stdio_getc, &stdio_fseek, \ |
| 141 |
< |
(void *)fopen(fn, "r")) |
| 141 |
> |
(void *)fopen(fn, "rb")) |
| 142 |
|
|
| 143 |
|
/* close stdio input file or stream */ |
| 144 |
|
#define BMPcloseInput(br) ( fclose((FILE *)(br)->c_data), \ |
| 151 |
|
/* open stdio output file */ |
| 152 |
|
#define BMPopenOutputFile(fn,hdr) \ |
| 153 |
|
BMPopenWriter(&stdio_putc, &stdio_fseek, \ |
| 154 |
< |
(void *)fopen(fn, "w"), hdr) |
| 154 |
> |
(void *)fopen(fn, "wb"), hdr) |
| 155 |
|
|
| 156 |
|
/* close stdio output file or stream */ |
| 157 |
|
#define BMPcloseOutput(bw) ( fclose((FILE *)(bw)->c_data), \ |