X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9718534022aadded7bf3faf727bc07f2780ce6a8..726c8204cd7f5541556291df3d3d03c18cecac7c:/wxPython/src/_image.i diff --git a/wxPython/src/_image.i b/wxPython/src/_image.i index 49d17afaf6..27f48e9319 100644 --- a/wxPython/src/_image.i +++ b/wxPython/src/_image.i @@ -68,6 +68,37 @@ public: "Find first colour that is not used in the image and has higher RGB values than startR, startG, startB. Returns a tuple consisting of a success flag and rgb values.", ""); + + %extend { + DocStr(GetCount, + "Returns the pixel count for the given key. Use `MakeKey` to create a +key value from a RGB tripple.", ""); + unsigned long GetCount(unsigned long key) { + wxImageHistogramEntry e = (*self)[key]; + return e.value; + } + + DocStr(GetCountRGB, + "Returns the pixel count for the given RGB values.", ""); + unsigned long GetCountRGB(unsigned char r, + unsigned char g, + unsigned char b) { + unsigned long key = wxImageHistogram::MakeKey(r, g, b); + wxImageHistogramEntry e = (*self)[key]; + return e.value; + } + + DocStr(GetCountColour, + "Returns the pixel count for the given `wx.Colour` value.", ""); + unsigned long GetCountColour(const wxColour& colour) { + unsigned long key = wxImageHistogram::MakeKey(colour.Red(), + colour.Green(), + colour.Blue()); + wxImageHistogramEntry e = (*self)[key]; + return e.value; + } + } + }; @@ -150,6 +181,9 @@ public: } } + // TODO: wxImage( char** xpmData ); + + void Create( int width, int height ); void Destroy(); @@ -157,7 +191,16 @@ public: wxImage ShrinkBy( int xFactor , int yFactor ) const ; wxImage& Rescale(int width, int height); + // resizes the image in place + wxImage& Resize( const wxSize& size, const wxPoint& pos, + int r = -1, int g = -1, int b = -1 ); + void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b ); + + %Rename(SetRGBRect, + void, SetRGB( const wxRect& rect, + unsigned char r, unsigned char g, unsigned char b )); + unsigned char GetRed( int x, int y ); unsigned char GetGreen( int x, int y ); unsigned char GetBlue( int x, int y ); @@ -243,6 +286,14 @@ The method will then fill up the whole image with the colour given.", ""); } wxImage GetSubImage(const wxRect& rect); + + // Paste the image or part of this image into an image of the given size at the pos + // any newly exposed areas will be filled with the rgb colour + // by default if r = g = b = -1 then fill with this image's mask colour or find and + // set a suitable mask colour + wxImage Size( const wxSize& size, const wxPoint& pos, + int r = -1, int g = -1, int b = -1 ) const; + wxImage Copy(); void Paste( const wxImage &image, int x, int y ); @@ -286,7 +337,7 @@ The method will then fill up the whole image with the colour given.", ""); unsigned char* buffer; int size; - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); if (!PyArg_Parse(data, "t#", &buffer, &size)) goto done; @@ -340,7 +391,7 @@ The method will then fill up the whole image with the colour given.", ""); unsigned char* buffer; int size; - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); if (!PyArg_Parse(data, "t#", &buffer, &size)) goto done; @@ -355,6 +406,15 @@ The method will then fill up the whole image with the colour given.", ""); } void SetMaskColour( unsigned char r, unsigned char g, unsigned char b ); + + DocDeclAStr( + /*bool*/ void , GetOrFindMaskColour( unsigned char *OUTPUT, + unsigned char *OUTPUT, + unsigned char *OUTPUT ) const, + "GetOrFindMaskColour() -> (r,g,b)", + "Get the current mask colour or find a suitable colour.", ""); + + unsigned char GetMaskRed(); unsigned char GetMaskGreen(); unsigned char GetMaskBlue(); @@ -452,7 +512,16 @@ MAKE_CONST_WXSTRING(IMAGE_OPTION_SAMPLESPERPIXEL); MAKE_CONST_WXSTRING(IMAGE_OPTION_COMPRESSION); MAKE_CONST_WXSTRING(IMAGE_OPTION_IMAGEDESCRIPTOR); - +MAKE_CONST_WXSTRING(IMAGE_OPTION_PNG_FORMAT); +MAKE_CONST_WXSTRING(IMAGE_OPTION_PNG_BITDEPTH); + +enum +{ + wxPNG_TYPE_COLOUR = 0, + wxPNG_TYPE_GREY = 2, + wxPNG_TYPE_GREY_RED = 3 +}; + enum { wxBMP_24BPP = 24, // default, do not need to set