Main Page | Modules | Class List | File List | Class Members | File Members

Gan_Image Struct Reference
[Image Package]

structure definition for image More...

#include <gandalf/image/image_defs.h>

List of all members.

Public Attributes

Gan_ImageFormat format
 format of image: grey-level, RGB colour etc.
Gan_Type type
 type of pixel values: unsigned char, float etc.
unsigned long height
 image dimensions
unsigned long width
 image dimensions
unsigned long stride
unsigned char * pix_data_ptr
size_t pix_data_size
 allocated size of image data in bytes
Gan_Bool pix_data_alloc
 flag indicating whether image data was dynamically allocated
union {
   union {
      unsigned char **   uc
      short **   s
      unsigned short **   us
      int **   i
      unsigned int **   ui
      float **   f
      double **   d
      Gan_BitWord **   b
      void ***   p
      Gan_YXPixel_ui10 **   ui10
      Gan_YXPixel_ui12 **   ui12
   }   gl
 grey level
   union {
      Gan_GLAPixel_uc **   uc
      Gan_GLAPixel_s **   s
      Gan_GLAPixel_us **   us
      Gan_GLAPixel_i **   i
      Gan_GLAPixel_ui **   ui
      Gan_GLAPixel_f **   f
      Gan_GLAPixel_d **   d
   }   gla
 grey level with alpha channel
   union {
      Gan_RGBPixel_uc **   uc
      Gan_RGBPixel_s **   s
      Gan_RGBPixel_us **   us
      Gan_RGBPixel_i **   i
      Gan_RGBPixel_ui **   ui
      Gan_RGBPixel_f **   f
      Gan_RGBPixel_d **   d
   }   rgb
 RGB colour.
   union {
      Gan_RGBAPixel_uc **   uc
      Gan_RGBAPixel_s **   s
      Gan_RGBAPixel_us **   us
      Gan_RGBAPixel_i **   i
      Gan_RGBAPixel_ui **   ui
      Gan_RGBAPixel_f **   f
      Gan_RGBAPixel_d **   d
      Gan_RGBAPixel_ui12 **   ui12
   }   rgba
 RGB colour with alpha channel.
   union {
      Gan_Vector2_f **   f
      Gan_Vector2 **   d
      Gan_Vector2_s **   s
      Gan_Vector2_i **   i
   }   vfield2D
 2D vector field
   union {
      Gan_Vector3_f **   f
      Gan_Vector3 **   d
      Gan_Vector3_s **   s
      Gan_Vector3_i **   i
   }   vfield3D
 3D vector field
   union {
      Gan_RGBXPixel_ui8 **   ui8
      Gan_RGBXPixel_ui10 **   ui10
   }   rgbx
 RGBX data.
   union {
      Gan_RGBASPixel_ui10 **   ui10
   }   rgbas
 RGBA data with small alpha channel.
   union {
      Gan_YUVX444Pixel_ui8 **   ui8
   }   yuvx444
 YUV 4-4-4 with padding to a word boundary.
   union {
      Gan_YUVA444Pixel_ui8 **   ui8
   }   yuva444
 YUVA 4-4-4.
   union {
      Gan_YUV422Pixel_ui8 **   ui8
   }   yuv422
 YUV 4-2-2.
row_data
 pointers to start of each row
void * row_data_ptr
 generic pointer to row pointer data
size_t row_data_size
 allocated number of row pointers in bytes
Gan_BitArrayba
 array of bit arrays for binary images
Gan_Bool ba_alloc
 whether bit array was allocated
int offset_x
 user-defined offsets
int offset_y
 user-defined offsets
Gan_Bool row_data_alloc
 flag indicating whether row pointer array was dynamically allocated
Gan_Bool struct_alloc
 flag indicating whether image structure was dynamically allocated
void(* data_free_func )(void *)
 function to free image data, defaulting to free() if this field is NULL
void(* free_func )(struct Gan_Image *img)
 function to free image
union {
   union {
      Gan_Bool(*   uc )(struct Gan_Image *, unsigned row, unsigned col, unsigned char pix)
      Gan_Bool(*   s )(struct Gan_Image *, unsigned row, unsigned col, short pix)
      Gan_Bool(*   us )(struct Gan_Image *, unsigned row, unsigned col, unsigned short pix)
      Gan_Bool(*   i )(struct Gan_Image *, unsigned row, unsigned col, int pix)
      Gan_Bool(*   ui )(struct Gan_Image *, unsigned row, unsigned col, unsigned int pix)
      Gan_Bool(*   f )(struct Gan_Image *, unsigned row, unsigned col, float pix)
      Gan_Bool(*   d )(struct Gan_Image *, unsigned row, unsigned col, double pix)
      Gan_Bool(*   b )(struct Gan_Image *, unsigned row, unsigned col, Gan_Bool pix)
      Gan_Bool(*   p )(struct Gan_Image *, unsigned row, unsigned col, void *pix)
      Gan_Bool(*   ui10 )(struct Gan_Image *, unsigned row, unsigned col, Gan_YXPixel_ui10 *pix)
      Gan_Bool(*   ui12 )(struct Gan_Image *, unsigned row, unsigned col, Gan_YXPixel_ui12 *pix)
   }   gl
 grey-level formats
   union {
      Gan_Bool(*   uc )(struct Gan_Image *, unsigned row, unsigned col, Gan_GLAPixel_uc *pix)
      Gan_Bool(*   s )(struct Gan_Image *, unsigned row, unsigned col, Gan_GLAPixel_s *pix)
      Gan_Bool(*   us )(struct Gan_Image *, unsigned row, unsigned col, Gan_GLAPixel_us *pix)
      Gan_Bool(*   i )(struct Gan_Image *, unsigned row, unsigned col, Gan_GLAPixel_i *pix)
      Gan_Bool(*   ui )(struct Gan_Image *, unsigned row, unsigned col, Gan_GLAPixel_ui *pix)
      Gan_Bool(*   f )(struct Gan_Image *, unsigned row, unsigned col, Gan_GLAPixel_f *pix)
      Gan_Bool(*   d )(struct Gan_Image *, unsigned row, unsigned col, Gan_GLAPixel_d *pix)
   }   gla
 grey-level formats with alpha channels
   union {
      Gan_Bool(*   uc )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBPixel_uc *pix)
      Gan_Bool(*   s )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBPixel_s *pix)
      Gan_Bool(*   us )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBPixel_us *pix)
      Gan_Bool(*   i )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBPixel_i *pix)
      Gan_Bool(*   ui )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBPixel_ui *pix)
      Gan_Bool(*   d )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBPixel_d *pix)
      Gan_Bool(*   f )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBPixel_f *pix)
   }   rgb
 RGB colour formats.
   union {
      Gan_Bool(*   uc )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBAPixel_uc *pix)
      Gan_Bool(*   s )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBAPixel_s *pix)
      Gan_Bool(*   us )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBAPixel_us *pix)
      Gan_Bool(*   i )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBAPixel_i *pix)
      Gan_Bool(*   ui )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBAPixel_ui *pix)
      Gan_Bool(*   d )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBAPixel_d *pix)
      Gan_Bool(*   f )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBAPixel_f *pix)
      Gan_Bool(*   ui12 )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBAPixel_ui12 *pix)
   }   rgba
 RGB colour formats with alpha channels.
   union {
      Gan_Bool(*   f )(struct Gan_Image *, unsigned row, unsigned col, Gan_Vector2_f *pix)
      Gan_Bool(*   d )(struct Gan_Image *, unsigned row, unsigned col, Gan_Vector2 *pix)
      Gan_Bool(*   s )(struct Gan_Image *, unsigned row, unsigned col, Gan_Vector2_s *pix)
      Gan_Bool(*   i )(struct Gan_Image *, unsigned row, unsigned col, Gan_Vector2_i *pix)
   }   vfield2D
 2D vector field formats
   union {
      Gan_Bool(*   f )(struct Gan_Image *, unsigned row, unsigned col, Gan_Vector3_f *pix)
      Gan_Bool(*   d )(struct Gan_Image *, unsigned row, unsigned col, Gan_Vector3 *pix)
      Gan_Bool(*   s )(struct Gan_Image *, unsigned row, unsigned col, Gan_Vector3_s *pix)
      Gan_Bool(*   i )(struct Gan_Image *, unsigned row, unsigned col, Gan_Vector3_i *pix)
   }   vfield3D
 3D vector field formats
   union {
      Gan_Bool(*   ui8 )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBXPixel_ui8 *pix)
      Gan_Bool(*   ui10 )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBXPixel_ui10 *pix)
   }   rgbx
 RGBX data.
   union {
      Gan_Bool(*   ui10 )(struct Gan_Image *, unsigned row, unsigned col, Gan_RGBASPixel_ui10 *pix)
   }   rgbas
 RGBA data with small alpha channel.
   union {
      Gan_Bool(*   ui8 )(struct Gan_Image *, unsigned row, unsigned col, Gan_YUVX444Pixel_ui8 *pix)
   }   yuvx444
 YUV 4-4-4 with padding to a word boundary.
   union {
      Gan_Bool(*   ui8 )(struct Gan_Image *, unsigned row, unsigned col, Gan_YUVA444Pixel_ui8 *pix)
   }   yuva444
 YUVA 4-4-4.
   union {
      Gan_Bool(*   ui8 )(struct Gan_Image *, unsigned row, unsigned col, Gan_YUV422Pixel_ui8 *pix)
   }   yuv422
 YUV 4-2-2.
set_pix
 set image pixel for each format
union {
   union {
      unsigned char(*   uc )(const struct Gan_Image *, unsigned row, unsigned col)
      short(*   s )(const struct Gan_Image *, unsigned row, unsigned col)
      unsigned short(*   us )(const struct Gan_Image *, unsigned row, unsigned col)
      int(*   i )(const struct Gan_Image *, unsigned row, unsigned col)
      unsigned int(*   ui )(const struct Gan_Image *, unsigned row, unsigned col)
      float(*   f )(const struct Gan_Image *, unsigned row, unsigned col)
      double(*   d )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_Bool(*   b )(const struct Gan_Image *, unsigned row, unsigned col)
      void *(*   p )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_YXPixel_ui10(*   ui10 )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_YXPixel_ui12(*   ui12 )(const struct Gan_Image *, unsigned row, unsigned col)
   }   gl
 grey-level formats
   union {
      Gan_GLAPixel_uc(*   uc )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_GLAPixel_s(*   s )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_GLAPixel_us(*   us )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_GLAPixel_i(*   i )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_GLAPixel_ui(*   ui )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_GLAPixel_f(*   f )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_GLAPixel_d(*   d )(const struct Gan_Image *, unsigned row, unsigned col)
   }   gla
 grey-level formats with alpha channels
   union {
      Gan_RGBPixel_uc(*   uc )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBPixel_s(*   s )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBPixel_us(*   us )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBPixel_i(*   i )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBPixel_ui(*   ui )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBPixel_f(*   f )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBPixel_d(*   d )(const struct Gan_Image *, unsigned row, unsigned col)
   }   rgb
 RGB colour formats.
   union {
      Gan_RGBAPixel_uc(*   uc )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBAPixel_s(*   s )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBAPixel_us(*   us )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBAPixel_i(*   i )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBAPixel_ui(*   ui )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBAPixel_f(*   f )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBAPixel_d(*   d )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBAPixel_ui12(*   ui12 )(const struct Gan_Image *, unsigned row, unsigned col)
   }   rgba
 RGB colour formats with alpha channels.
   union {
      Gan_Vector2_f(*   f )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_Vector2(*   d )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_Vector2_s(*   s )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_Vector2_i(*   i )(const struct Gan_Image *, unsigned row, unsigned col)
   }   vfield2D
 2D vector field formats
   union {
      Gan_Vector3_f(*   f )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_Vector3(*   d )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_Vector3_s(*   s )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_Vector3_i(*   i )(const struct Gan_Image *, unsigned row, unsigned col)
   }   vfield3D
 3D vector field formats
   union {
      Gan_RGBXPixel_ui8(*   ui8 )(const struct Gan_Image *, unsigned row, unsigned col)
      Gan_RGBXPixel_ui10(*   ui10 )(const struct Gan_Image *, unsigned row, unsigned col)
   }   rgbx
 RGBX data.
   union {
      Gan_RGBASPixel_ui10(*   ui10 )(const struct Gan_Image *, unsigned row, unsigned col)
   }   rgbas
 RGBA data with small alpha channel.
   union {
      Gan_YUVX444Pixel_ui8(*   ui8 )(const struct Gan_Image *, unsigned row, unsigned col)
   }   yuvx444
 YUV 4-4-4 with padding to a word boundary.
   union {
      Gan_YUVA444Pixel_ui8(*   ui8 )(const struct Gan_Image *, unsigned row, unsigned col)
   }   yuva444
 YUVA 4-4-4.
   union {
      Gan_YUV422Pixel_ui8(*   ui8 )(const struct Gan_Image *, unsigned row, unsigned col)
   }   yuv422
 YUV 4-2-2.
get_pix
 get image pixel for each format
union {
   union {
      Gan_Bool(*   uc )(struct Gan_Image *, unsigned char pix)
      Gan_Bool(*   s )(struct Gan_Image *, short pix)
      Gan_Bool(*   us )(struct Gan_Image *, unsigned short pix)
      Gan_Bool(*   i )(struct Gan_Image *, int pix)
      Gan_Bool(*   ui )(struct Gan_Image *, unsigned int pix)
      Gan_Bool(*   f )(struct Gan_Image *, float pix)
      Gan_Bool(*   d )(struct Gan_Image *, double pix)
      Gan_Bool(*   b )(struct Gan_Image *, Gan_Bool pix)
      Gan_Bool(*   p )(struct Gan_Image *, void *pix)
      Gan_Bool(*   ui10 )(struct Gan_Image *, Gan_YXPixel_ui10 *pix)
      Gan_Bool(*   ui12 )(struct Gan_Image *, Gan_YXPixel_ui12 *pix)
   }   gl
 grey-level formats
   union {
      Gan_Bool(*   uc )(struct Gan_Image *, Gan_GLAPixel_uc *pix)
      Gan_Bool(*   s )(struct Gan_Image *, Gan_GLAPixel_s *pix)
      Gan_Bool(*   us )(struct Gan_Image *, Gan_GLAPixel_us *pix)
      Gan_Bool(*   i )(struct Gan_Image *, Gan_GLAPixel_i *pix)
      Gan_Bool(*   ui )(struct Gan_Image *, Gan_GLAPixel_ui *pix)
      Gan_Bool(*   f )(struct Gan_Image *, Gan_GLAPixel_f *pix)
      Gan_Bool(*   d )(struct Gan_Image *, Gan_GLAPixel_d *pix)
   }   gla
 grey-level formats with slpha channels
   union {
      Gan_Bool(*   uc )(struct Gan_Image *, Gan_RGBPixel_uc *pix)
      Gan_Bool(*   s )(struct Gan_Image *, Gan_RGBPixel_s *pix)
      Gan_Bool(*   us )(struct Gan_Image *, Gan_RGBPixel_us *pix)
      Gan_Bool(*   i )(struct Gan_Image *, Gan_RGBPixel_i *pix)
      Gan_Bool(*   ui )(struct Gan_Image *, Gan_RGBPixel_ui *pix)
      Gan_Bool(*   f )(struct Gan_Image *, Gan_RGBPixel_f *pix)
      Gan_Bool(*   d )(struct Gan_Image *, Gan_RGBPixel_d *pix)
   }   rgb
 RGB colour formats.
   union {
      Gan_Bool(*   uc )(struct Gan_Image *, Gan_RGBAPixel_uc *pix)
      Gan_Bool(*   s )(struct Gan_Image *, Gan_RGBAPixel_s *pix)
      Gan_Bool(*   us )(struct Gan_Image *, Gan_RGBAPixel_us *pix)
      Gan_Bool(*   i )(struct Gan_Image *, Gan_RGBAPixel_i *pix)
      Gan_Bool(*   ui )(struct Gan_Image *, Gan_RGBAPixel_ui *pix)
      Gan_Bool(*   f )(struct Gan_Image *, Gan_RGBAPixel_f *pix)
      Gan_Bool(*   d )(struct Gan_Image *, Gan_RGBAPixel_d *pix)
      Gan_Bool(*   ui12 )(struct Gan_Image *, Gan_RGBAPixel_ui12 *pix)
   }   rgba
 RGB colour formats with alpha channels.
   union {
      Gan_Bool(*   f )(struct Gan_Image *, Gan_Vector2_f *pix)
      Gan_Bool(*   d )(struct Gan_Image *, Gan_Vector2 *pix)
      Gan_Bool(*   s )(struct Gan_Image *, Gan_Vector2_s *pix)
      Gan_Bool(*   i )(struct Gan_Image *, Gan_Vector2_i *pix)
   }   vfield2D
 2D vector field formats
   union {
      Gan_Bool(*   f )(struct Gan_Image *, Gan_Vector3_f *pix)
      Gan_Bool(*   d )(struct Gan_Image *, Gan_Vector3 *pix)
      Gan_Bool(*   s )(struct Gan_Image *, Gan_Vector3_s *pix)
      Gan_Bool(*   i )(struct Gan_Image *, Gan_Vector3_i *pix)
   }   vfield3D
 3D vector field formats
   union {
      Gan_Bool(*   ui8 )(struct Gan_Image *, Gan_RGBXPixel_ui8 *pix)
      Gan_Bool(*   ui10 )(struct Gan_Image *, Gan_RGBXPixel_ui10 *pix)
   }   rgbx
 RGBX data.
   union {
      Gan_Bool(*   ui10 )(struct Gan_Image *, Gan_RGBASPixel_ui10 *pix)
   }   rgbas
 RGBA data with small alpha channel.
   union {
      Gan_Bool(*   ui8 )(struct Gan_Image *, Gan_YUVX444Pixel_ui8 *pix)
   }   yuvx444
 YUV 4-4-4 with padding to a word boundary.
   union {
      Gan_Bool(*   ui8 )(struct Gan_Image *, Gan_YUVA444Pixel_ui8 *pix)
   }   yuva444
 YUVA 4-4-4.
   union {
      Gan_Bool(*   ui8 )(struct Gan_Image *, Gan_YUV422Pixel_ui8 *pix)
   }   yuv422
 YUV 4-2-2.
fill_const
 fill image with constant value in a mask
Gan_Image *(* copy )(const struct Gan_Image *, struct Gan_Image *)
 copy image


Detailed Description

structure definition for image


Member Data Documentation

unsigned char* Gan_Image::pix_data_ptr
 

generic pointer to pixel data, as a byte pointer so that we can do pointer arithmetic in bytes with it

unsigned long Gan_Image::stride
 

stride of image, i.e. number of bytes in memory between the start of each row; stride >= width*(size of pixel)


The documentation for this struct was generated from the following file:
Generated on Fri Mar 17 12:44:53 2006 by  doxygen 1.3.9.1