root/src/add-ons/translators/ppm/colorspace.h
/*      colorspace.h    */
/*
        Copyright 1999, Be Incorporated.   All Rights Reserved.
        This file may be used under the terms of the Be Sample Code License.
*/

#if !defined(COLORSPACE_H)
#define COLORSPACE_H


/*      This is the main conversion function; it converts data in in_data       */
/*      with rowbytes amount of pixel data into some other color space in       */
/*      out_data, with enough memory assumed to be in out_data for the          */
/*      converted data. */
status_t convert_space(color_space in_space, color_space out_space,
        unsigned char* in_data, int rowbytes, unsigned char* out_data);

/*      This function expands rowbytes amount of data from in_data into         */
/*      RGBA32 data in out_buf, which must be big enough.                                       */
int expand_data(color_space from_space, unsigned char* in_data, int rowbytes,
        unsigned char* out_buf);

/*      This function converts num_bytes bytes of RGBA32 data into some new     */
/*      color space in out_buf, where out_buf must be big enough.                       */
int collapse_data(unsigned char* in_buf, int num_bytes, color_space out_space,
        unsigned char* out_buf);

/*      Given a specific number of pixels in width in the color space space     */
/*      this function calculates what the row_bytes should be.                          */
int calc_rowbytes(color_space space, int width);

#endif /* COLORSPACE_H */