]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/quantize.h
Moved all interface headers into a 'wx' subdirectory for proper use of Doxygen path...
[wxWidgets.git] / interface / wx / quantize.h
diff --git a/interface/wx/quantize.h b/interface/wx/quantize.h
new file mode 100644 (file)
index 0000000..eeea5bc
--- /dev/null
@@ -0,0 +1,66 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        quantize.h
+// Purpose:     interface of wxQuantize
+// Author:      wxWidgets team
+// RCS-ID:      $Id$
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+    @class wxQuantize
+    @wxheader{quantize.h}
+
+    Performs quantization, or colour reduction, on a wxImage.
+
+    Functions in this class are static and so a wxQuantize object need not be
+    created.
+
+    @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.
+        @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
+        variable).
+    */
+    void DoQuantize(unsigned w, unsigned h, unsigned char** in_rows,
+                    unsigned char** out_rows, unsigned char* palette,
+                    int desiredNoColours);
+
+    /**
+        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.
+    */
+    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);
+
+    /**
+        This version sets a palette in the destination image so you don't
+        have to manage it yourself.
+    */
+    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);
+};
+