00001 #ifndef _H_RGBE
00002 #define _H_RGBE
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <stdio.h>
00012
00013 typedef struct {
00014 int valid;
00015 char programtype[16];
00016
00017 float gamma;
00018
00019 float exposure;
00020
00021
00022 } rgbe_header_info;
00023
00024
00025 #define RGBE_VALID_PROGRAMTYPE 0x01
00026 #define RGBE_VALID_GAMMA 0x02
00027 #define RGBE_VALID_EXPOSURE 0x04
00028
00029
00030 #define RGBE_RETURN_SUCCESS 0
00031 #define RGBE_RETURN_FAILURE -1
00032
00033
00034
00035 int RGBE_WriteHeader(FILE *fp, const int width, const int height, const rgbe_header_info *info);
00036 int RGBE_ReadHeader(FILE *fp, int *width, int *height, rgbe_header_info *info);
00037
00038
00039
00040 int RGBE_WritePixels(FILE *fp, const float *data, const int numpixels);
00041 int RGBE_ReadPixels(FILE *fp, float *data, const int numpixels);
00042
00043
00044
00045 int RGBE_WritePixels_RLE(FILE *fp, const float *data, const int scanline_width, const int num_scanlines);
00046 int RGBE_ReadPixels_RLE(FILE *fp, float *data, const int scanline_width, const int num_scanlines);
00047
00048 #endif
00049
00050
00051