X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/debff7aa47c6424b4890d64ccdac4223d8d5f9f1..e3f1b5b5350cce8527d38fc74979f5983ce07471:/wxPython/src/_image.i diff --git a/wxPython/src/_image.i b/wxPython/src/_image.i index a3e9547aed..ea4cca9f10 100644 --- a/wxPython/src/_image.i +++ b/wxPython/src/_image.i @@ -84,7 +84,7 @@ public: %name(ImageFromStream) wxImage(wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1); %name(ImageFromStreamMime) wxImage(wxInputStream& stream, const wxString& mimetype, int index = -1 ); %extend { - %name(EmptyImage) wxImage(int width=0, int height=0, bool clear = True) { + %name(EmptyImage) wxImage(int width=0, int height=0, bool clear = true) { if (width > 0 && height > 0) return new wxImage(width, height, clear); else @@ -104,7 +104,25 @@ public: return NULL; } memcpy(copy, data, width*height*3); - return new wxImage(width, height, copy, False); + return new wxImage(width, height, copy, false); + } + %name(ImageFromDataWithAlpha) wxImage(int width, int height, + unsigned char* data, unsigned char* alpha) { + // Copy the source data so the wxImage can clean it up later + unsigned char* dcopy = (unsigned char*)malloc(width*height*3); + if (dcopy == NULL) { + PyErr_NoMemory(); + return NULL; + } + memcpy(dcopy, data, width*height*3); + unsigned char* acopy = (unsigned char*)malloc(width*height); + if (acopy == NULL) { + PyErr_NoMemory(); + return NULL; + } + memcpy(acopy, alpha, width*height); + + return new wxImage(width, height, dcopy, acopy, false); } } @@ -146,6 +164,17 @@ If the image image doesn't have alpha channel, ConvertAlphaToMask does nothing.", ""); + DocDeclStr( + bool , ConvertColourToAlpha( unsigned char r, unsigned char g, unsigned char b ), + "This method converts an image where the original alpha information is +only available as a shades of a colour (actually shades of grey) +typically when you draw anti-aliased text into a bitmap. The DC +drawing routines draw grey values on the black background although +they actually mean to draw white with differnt alpha values. This +method reverses it, assuming a black (!) background and white text. +The method will then fill up the whole image with the colour given.", ""); + + // Set image's mask to the area of 'mask' that has colour bool SetMaskFromImage(const wxImage & mask, @@ -297,13 +326,13 @@ nothing.", ""); unsigned char GetMaskRed(); unsigned char GetMaskGreen(); unsigned char GetMaskBlue(); - void SetMask( bool mask = True ); + void SetMask( bool mask = true ); bool HasMask(); wxImage Rotate(double angle, const wxPoint & centre_of_rotation, - bool interpolating = True, wxPoint * offset_after_rotation = NULL) const ; - wxImage Rotate90( bool clockwise = True ) ; - wxImage Mirror( bool horizontally = True ) ; + bool interpolating = true, wxPoint * offset_after_rotation = NULL) const ; + wxImage Rotate90( bool clockwise = true ) ; + wxImage Mirror( bool horizontally = true ) ; void Replace( unsigned char r1, unsigned char g1, unsigned char b1, unsigned char r2, unsigned char g2, unsigned char b2 );