00001
00002
00003
00004
00005
00006
00007
00008 #ifndef BITMAP_H
00009 #define BITMAP_H
00010
00011 struct bitmap * bitmap_create( int w, int h );
00012 void bitmap_delete( struct bitmap *b );
00013
00014 int bitmap_get( struct bitmap *b, int x, int y );
00015 void bitmap_set( struct bitmap *b, int x, int y, int value );
00016 int bitmap_width( struct bitmap *b );
00017 int bitmap_height( struct bitmap *b );
00018 void bitmap_reset( struct bitmap *b, int value );
00019 int *bitmap_data( struct bitmap *b );
00020
00021 void bitmap_rotate_clockwise( struct bitmap *s, struct bitmap *t );
00022 void bitmap_rotate_counterclockwise( struct bitmap *s, struct bitmap *t );
00023
00024 int bitmap_average( struct bitmap *s );
00025 void bitmap_smooth( struct bitmap *s, struct bitmap *t, int msize );
00026 void bitmap_subset( struct bitmap *s, int x, int y, struct bitmap *t );
00027 void bitmap_convolve( struct bitmap *s, struct bitmap *t, int (*f)( int x ) );
00028 void bitmap_copy( struct bitmap *s, struct bitmap *t );
00029
00030 struct bitmap * bitmap_load_any( const char *path );
00031
00032 struct bitmap * bitmap_load_raw( const char *file );
00033 struct bitmap * bitmap_load_bmp( const char *file );
00034 struct bitmap * bitmap_load_pcx( const char *file );
00035 struct bitmap * bitmap_load_sgi_rgb( const char *file );
00036 struct bitmap * bitmap_load_jpeg( const char *file );
00037
00038 int bitmap_save_raw( struct bitmap *b, const char *file );
00039 int bitmap_save_bmp( struct bitmap *b, const char *file );
00040 int bitmap_save_jpeg( struct bitmap *b, const char *file );
00041
00042 #ifndef MAKE_RGBA
00043
00044 #define MAKE_RGBA(r,g,b,a) ( (((int)(a))<<24) | (((int)(r))<<16) | (((int)(g))<<8) | (((int)(b))<<0) )
00045 #endif
00046
00047 #ifndef GET_RED
00048
00049 #define GET_RED(rgba) (( (rgba)>>16 ) & 0xff )
00050 #endif
00051
00052 #ifndef GET_GREEN
00053
00054 #define GET_GREEN(rgba) (( (rgba)>>8 ) & 0xff )
00055 #endif
00056
00057 #ifndef GET_BLUE
00058
00059 #define GET_BLUE(rgba) (( (rgba)>>0 ) & 0xff )
00060 #endif
00061
00062 #ifndef GET_ALPHA
00063
00064 #define GET_ALPHA(rgba) (( (rgba)>>24 ) & 0xff)
00065 #endif
00066
00067 #endif
00068