X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f7ecb3beeb755aebfdd95d7e9d5fc4586b2adc9..42f8298f6f42d5d63bb3caf65682b7d9d9f8b702:/wxPython/src/_image.i?ds=sidebyside diff --git a/wxPython/src/_image.i b/wxPython/src/_image.i index 3d216f9a8e..98c6d8e6f6 100644 --- a/wxPython/src/_image.i +++ b/wxPython/src/_image.i @@ -76,15 +76,32 @@ success flag and rgb values.", ""); class wxImage : public wxObject { public: - wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 ); + DocCtorStr( + wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 ), + "", ""); + ~wxImage(); // Alternate constructors - %name(ImageFromMime) wxImage(const wxString& name, const wxString& mimetype, int index = -1); - %name(ImageFromStream) wxImage(wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1); - %name(ImageFromStreamMime) wxImage(wxInputStream& stream, const wxString& mimetype, int index = -1 ); + DocCtorStrName( + wxImage(const wxString& name, const wxString& mimetype, int index = -1), + "", "", + ImageFromMime); + + DocCtorStrName( + wxImage(wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1), + "", "", + ImageFromStream); + + DocCtorStrName( + wxImage(wxInputStream& stream, const wxString& mimetype, int index = -1 ), + "", "", + ImageFromStreamMime); + %extend { - %name(EmptyImage) wxImage(int width=0, int height=0, bool clear = true) { + %rename(EmptyImage) wxImage(int width=0, int height=0, bool clear = true); + wxImage(int width=0, int height=0, bool clear = true) + { if (width > 0 && height > 0) return new wxImage(width, height, clear); else @@ -92,11 +109,15 @@ public: } MustHaveApp(wxImage(const wxBitmap &bitmap)); - %name(ImageFromBitmap) wxImage(const wxBitmap &bitmap) { + %rename(ImageFromBitmap) wxImage(const wxBitmap &bitmap); + wxImage(const wxBitmap &bitmap) + { return new wxImage(bitmap.ConvertToImage()); } - %name(ImageFromData) wxImage(int width, int height, unsigned char* data) { + %rename(ImageFromData) wxImage(int width, int height, unsigned char* data); + 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); if (copy == NULL) { @@ -106,6 +127,27 @@ public: memcpy(copy, data, width*height*3); return new wxImage(width, height, copy, false); } + + + %rename(ImageFromDataWithAlpha) wxImage(int width, int height, unsigned char* data, unsigned char* alpha); + 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); + } } void Create( int width, int height ); @@ -124,6 +166,14 @@ public: unsigned char GetAlpha(int x, int y); bool HasAlpha(); + DocDeclStr( + void , InitAlpha(), + "Initializes the image alpha channel data. It is an error to call it if +the image already has alpha data. If it doesn't, alpha data will be by +default initialized to all pixels being fully opaque. But if the image +has a a mask colour, all mask pixels will be completely transparent.", ""); + + // find first colour that is not used in the image and has higher // RGB values than DocDeclAStr( @@ -172,14 +222,14 @@ The method will then fill up the whole image with the colour given.", ""); static int GetImageCount( const wxString& name, long type = wxBITMAP_TYPE_ANY ); bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 ); - %name(LoadMimeFile)bool LoadFile( const wxString& name, const wxString& mimetype, int index = -1 ); + %Rename(LoadMimeFile, bool, LoadFile( const wxString& name, const wxString& mimetype, int index = -1 )); bool SaveFile( const wxString& name, int type ); - %name(SaveMimeFile)bool SaveFile( const wxString& name, const wxString& mimetype ); + %Rename(SaveMimeFile, bool, SaveFile( const wxString& name, const wxString& mimetype )); - %name(CanReadStream) static bool CanRead( wxInputStream& stream ); - %name(LoadStream) bool LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1 ); - %name(LoadMimeStream) bool LoadFile( wxInputStream& stream, const wxString& mimetype, int index = -1 ); + %Rename(CanReadStream, static bool, CanRead( wxInputStream& stream )); + %Rename(LoadStream, bool, LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1 )); + %Rename(LoadMimeStream, bool, LoadFile( wxInputStream& stream, const wxString& mimetype, int index = -1 )); bool Ok(); int GetWidth(); @@ -323,7 +373,7 @@ The method will then fill up the whole image with the colour given.", ""); wxImage ConvertToMono( unsigned char r, unsigned char g, unsigned char b ) const; void SetOption(const wxString& name, const wxString& value); - %name(SetOptionInt)void SetOption(const wxString& name, int value); + %Rename(SetOptionInt, void, SetOption(const wxString& name, int value)); wxString GetOption(const wxString& name) const; int GetOptionInt(const wxString& name) const; bool HasOption(const wxString& name) const; @@ -380,11 +430,13 @@ const wxImage wxNullImage; //--------------------------------------------------------------------------- - +MAKE_CONST_WXSTRING(IMAGE_OPTION_FILENAME); 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_RESOLUTIONX); +MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTIONY); MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTIONUNIT); enum @@ -394,6 +446,12 @@ enum }; +MAKE_CONST_WXSTRING(IMAGE_OPTION_BITSPERSAMPLE); +MAKE_CONST_WXSTRING(IMAGE_OPTION_SAMPLESPERPIXEL); +MAKE_CONST_WXSTRING(IMAGE_OPTION_COMPRESSION); +MAKE_CONST_WXSTRING(IMAGE_OPTION_IMAGEDESCRIPTOR); + + enum { wxBMP_24BPP = 24, // default, do not need to set