2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: quantize.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxQuantize
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
2010-07-13 09:29:13 -04:00
|
|
|
// Licence: wxWindows licence
|
2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxQuantize
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Performs quantization, or colour reduction, on a wxImage.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Functions in this class are static and so a wxQuantize object need not be
|
|
|
|
created.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxcore}
|
|
|
|
@category{misc}
|
|
|
|
*/
|
|
|
|
class wxQuantize : public wxObject
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Constructor. You do not need to construct a wxQuantize object since its
|
|
|
|
functions are static.
|
|
|
|
*/
|
|
|
|
wxQuantize();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Converts input bitmap(s) into 8bit representation with custom palette.
|
2008-05-04 05:04:38 -04:00
|
|
|
@a in_rows and @a out_rows are arrays [0..h-1] of pointer to rows
|
|
|
|
(@a in_rows contains @a w * 3 bytes per row, @a out_rows @a w bytes per row).
|
|
|
|
Fills @a out_rows with indexes into palette (which is also stored into @a palette
|
2008-03-08 08:52:38 -05:00
|
|
|
variable).
|
|
|
|
*/
|
2008-10-28 11:36:26 -04:00
|
|
|
static void DoQuantize(unsigned int w, unsigned int h,
|
|
|
|
unsigned char** in_rows, unsigned char** out_rows,
|
|
|
|
unsigned char* palette, int desiredNoColours);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-05-04 05:04:38 -04:00
|
|
|
Reduce the colours in the source image and put the result into the destination image.
|
|
|
|
Both images may be the same, to overwrite the source image.
|
|
|
|
|
|
|
|
Specify an optional palette pointer to receive the resulting palette.
|
|
|
|
This palette may be passed to ConvertImageToBitmap, for example.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-10-13 07:09:56 -04:00
|
|
|
static bool Quantize(const wxImage& src, wxImage& dest,
|
|
|
|
wxPalette** pPalette, int desiredNoColours = 236,
|
|
|
|
unsigned char** eightBitData = 0,
|
|
|
|
int flags = wxQUANTIZE_INCLUDE_WINDOWS_COLOURS|
|
|
|
|
wxQUANTIZE_FILL_DESTINATION_IMAGE|
|
|
|
|
wxQUANTIZE_RETURN_8BIT_DATA);
|
2008-05-04 05:04:38 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
This version sets a palette in the destination image so you don't
|
|
|
|
have to manage it yourself.
|
|
|
|
*/
|
2008-10-13 07:09:56 -04:00
|
|
|
static bool Quantize(const wxImage& src, wxImage& dest,
|
|
|
|
int desiredNoColours = 236,
|
|
|
|
unsigned char** eightBitData = 0,
|
|
|
|
int flags = wxQUANTIZE_INCLUDE_WINDOWS_COLOURS|
|
|
|
|
wxQUANTIZE_FILL_DESTINATION_IMAGE|
|
|
|
|
wxQUANTIZE_RETURN_8BIT_DATA);
|
2008-03-08 08:52:38 -05:00
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|