From be43ef045a3bc040da1173d526d95347e7902216 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Mon, 2 Aug 2004 21:56:06 +0000 Subject: [PATCH 1/1] Added wxQuantize git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/src/__core_rename.i | 3 +++ wxPython/src/_image.i | 51 ++++++++++++++++++++++++++++++++---- wxPython/wxPython/_core.py | 5 ++++ 3 files changed, 54 insertions(+), 5 deletions(-) diff --git a/wxPython/src/__core_rename.i b/wxPython/src/__core_rename.i index 242a1e24c8..a973839120 100644 --- a/wxPython/src/__core_rename.i +++ b/wxPython/src/__core_rename.i @@ -508,6 +508,9 @@ %rename(PNMHandler) wxPNMHandler; %rename(XPMHandler) wxXPMHandler; %rename(TIFFHandler) wxTIFFHandler; +%rename(QUANTIZE_INCLUDE_WINDOWS_COLOURS) wxQUANTIZE_INCLUDE_WINDOWS_COLOURS; +%rename(QUANTIZE_FILL_DESTINATION_IMAGE) wxQUANTIZE_FILL_DESTINATION_IMAGE; +%rename(Quantize) wxQuantize; %rename(EvtHandler) wxEvtHandler; %rename(EVENT_PROPAGATE_NONE) wxEVENT_PROPAGATE_NONE; %rename(EVENT_PROPAGATE_MAX) wxEVENT_PROPAGATE_MAX; diff --git a/wxPython/src/_image.i b/wxPython/src/_image.i index d248f1a0fa..57ab53657f 100644 --- a/wxPython/src/_image.i +++ b/wxPython/src/_image.i @@ -89,13 +89,13 @@ public: return new wxImage(width, height, clear); else return new wxImage; - } + } MustHaveApp(wxImage(const wxBitmap &bitmap)); %name(ImageFromBitmap) wxImage(const wxBitmap &bitmap) { return new wxImage(bitmap.ConvertToImage()); } - + %name(ImageFromData) wxImage(int width, int height, unsigned char* data) { // Copy the source data so the wxImage can clean it up later unsigned char* copy = (unsigned char*)malloc(width*height*3); @@ -107,7 +107,7 @@ public: return new wxImage(width, height, copy, False); } } - + void Create( int width, int height ); void Destroy(); @@ -315,7 +315,7 @@ success flag and rgb values.", ""); MustHaveApp(ConvertToBitmap); MustHaveApp(ConvertToMonoBitmap); - + %extend { wxBitmap ConvertToBitmap() { wxBitmap bitmap(*self); @@ -361,7 +361,7 @@ MAKE_CONST_WXSTRING(IMAGE_OPTION_BMP_FORMAT); MAKE_CONST_WXSTRING(IMAGE_OPTION_CUR_HOTSPOT_X); MAKE_CONST_WXSTRING(IMAGE_OPTION_CUR_HOTSPOT_Y); MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTION); -MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTIONUNIT); +MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTIONUNIT); enum { @@ -455,4 +455,45 @@ public: }; #endif +//--------------------------------------------------------------------------- + +%{ +#include +%} + +enum { + wxQUANTIZE_INCLUDE_WINDOWS_COLOURS, +// wxQUANTIZE_RETURN_8BIT_DATA, + wxQUANTIZE_FILL_DESTINATION_IMAGE +}; + + +DocStr(wxQuantize, + "Performs quantization, or colour reduction, on a wxImage.", ""); + +class wxQuantize /*: public wxObject */ +{ +public: + + %extend { + DocStr( + Quantize, + "Reduce the colours in the source image and put the result into the +destination image, setting the palette in the detination if +needed. Both images may be the same, to overwrite the source image.", " +:todo: Create a version that returns the wx.Palette used."); + + static bool Quantize(const wxImage& src, wxImage& dest, int desiredNoColours = 236, + int flags = wxQUANTIZE_INCLUDE_WINDOWS_COLOURS|wxQUANTIZE_FILL_DESTINATION_IMAGE) + { + return wxQuantize::Quantize(src, dest, + //NULL, // palette + desiredNoColours, + NULL, // eightBitData + flags); + } + } +}; + + //--------------------------------------------------------------------------- diff --git a/wxPython/wxPython/_core.py b/wxPython/wxPython/_core.py index 54bc94d701..045b65436c 100644 --- a/wxPython/wxPython/_core.py +++ b/wxPython/wxPython/_core.py @@ -693,6 +693,11 @@ wxXPMHandler = wx._core.XPMHandler wxXPMHandlerPtr = wx._core.XPMHandlerPtr wxTIFFHandler = wx._core.TIFFHandler wxTIFFHandlerPtr = wx._core.TIFFHandlerPtr +wxQUANTIZE_INCLUDE_WINDOWS_COLOURS = wx._core.QUANTIZE_INCLUDE_WINDOWS_COLOURS +wxQUANTIZE_FILL_DESTINATION_IMAGE = wx._core.QUANTIZE_FILL_DESTINATION_IMAGE +wxQuantize = wx._core.Quantize +wxQuantizePtr = wx._core.QuantizePtr +wxQuantize_Quantize = wx._core.Quantize_Quantize wxEvtHandler = wx._core.EvtHandler wxEvtHandlerPtr = wx._core.EvtHandlerPtr wxEVENT_PROPAGATE_NONE = wx._core.EVENT_PROPAGATE_NONE -- 2.45.2