X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/70bf3295928711b17e5931a492104c160546544e..d0f063020e6fb1b1a660952d0844071e0df24324:/include/wx/image.h diff --git a/include/wx/image.h b/include/wx/image.h index b40f7d305d..49ea7b2229 100644 --- a/include/wx/image.h +++ b/include/wx/image.h @@ -36,6 +36,9 @@ #define wxIMAGE_OPTION_RESOLUTIONUNIT wxString(_T("ResolutionUnit")) +#define wxIMAGE_OPTION_MAX_WIDTH wxString(_T("MaxWidth")) +#define wxIMAGE_OPTION_MAX_HEIGHT wxString(_T("MaxHeight")) + // constants used with wxIMAGE_OPTION_RESOLUTIONUNIT // // NB: don't change these values, they correspond to libjpeg constants @@ -105,10 +108,12 @@ public: void SetName(const wxString& name) { m_name = name; } void SetExtension(const wxString& ext) { m_extension = ext; } + void SetAltExtensions(const wxArrayString& exts) { m_altExtensions = exts; } void SetType(wxBitmapType type) { m_type = type; } void SetMimeType(const wxString& type) { m_mime = type; } const wxString& GetName() const { return m_name; } const wxString& GetExtension() const { return m_extension; } + const wxArrayString& GetAltExtensions() const { return m_altExtensions; } wxBitmapType GetType() const { return m_type; } const wxString& GetMimeType() const { return m_mime; } @@ -135,6 +140,7 @@ protected: wxString m_name; wxString m_extension; + wxArrayString m_altExtensions; wxString m_mime; wxBitmapType m_type; @@ -215,28 +221,58 @@ public: }; wxImage() {} - wxImage( int width, int height, bool clear = true ); - wxImage( int width, int height, unsigned char* data, bool static_data = false ); - wxImage( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false ); - wxImage( const wxString& name, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 ); - wxImage( const wxString& name, const wxString& mimetype, int index = -1 ); - wxImage( const char* const* xpmData ); + wxImage( int width, int height, bool clear = true ) + { Create( width, height, clear ); } + wxImage( int width, int height, unsigned char* data, bool static_data = false ) + { Create( width, height, data, static_data ); } + wxImage( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false ) + { Create( width, height, data, alpha, static_data ); } + + // ctor variants using wxSize: + wxImage( const wxSize& sz, bool clear = true ) + { Create( sz, clear ); } + wxImage( const wxSize& sz, unsigned char* data, bool static_data = false ) + { Create( sz, data, static_data ); } + wxImage( const wxSize& sz, unsigned char* data, unsigned char* alpha, bool static_data = false ) + { Create( sz, data, alpha, static_data ); } + + wxImage( const wxString& name, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 ) + { LoadFile( name, type, index ); } + wxImage( const wxString& name, const wxString& mimetype, int index = -1 ) + { LoadFile( name, mimetype, index ); } + wxImage( const char* const* xpmData ) + { Create(xpmData); } #if wxUSE_STREAMS - wxImage( wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 ); - wxImage( wxInputStream& stream, const wxString& mimetype, int index = -1 ); + wxImage( wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 ) + { LoadFile( stream, type, index ); } + wxImage( wxInputStream& stream, const wxString& mimetype, int index = -1 ) + { LoadFile( stream, mimetype, index ); } #endif // wxUSE_STREAMS - bool Create( int width, int height, bool clear = true ); - bool Create( int width, int height, unsigned char* data, bool static_data = false ); - bool Create( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false ); bool Create( const char* const* xpmData ); #ifdef __BORLANDC__ // needed for Borland 5.5 - wxImage( char** xpmData ) { Create(wx_const_cast(const char* const*, xpmData)); } - bool Create( char** xpmData ) { return Create(wx_const_cast(const char* const*, xpmData)); } + wxImage( char** xpmData ) { Create(const_cast(xpmData)); } + bool Create( char** xpmData ) { return Create(const_cast(xpmData)); } #endif + + bool Create( int width, int height, bool clear = true ); + bool Create( int width, int height, unsigned char* data, bool static_data = false ); + bool Create( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false ); + + // Create() variants using wxSize: + bool Create( const wxSize& sz, bool clear = true ) + { return Create(sz.GetWidth(), sz.GetHeight(), clear); } + bool Create( const wxSize& sz, unsigned char* data, bool static_data = false ) + { return Create(sz.GetWidth(), sz.GetHeight(), data, static_data); } + bool Create( const wxSize& sz, unsigned char* data, unsigned char* alpha, bool static_data = false ) + { return Create(sz.GetWidth(), sz.GetHeight(), data, alpha, static_data); } + void Destroy(); + + // initialize the image data with zeroes + void Clear(unsigned char value = 0); // creates an identical copy of the image (the = operator // just raises the ref count) @@ -280,7 +316,7 @@ public: // Rotates the image about the given point, 'angle' radians. // Returns the rotated image, leaving this image intact. wxImage Rotate(double angle, const wxPoint & centre_of_rotation, - bool interpolating = true, wxPoint * offset_after_rotation = (wxPoint*) NULL) const; + bool interpolating = true, wxPoint * offset_after_rotation = NULL) const; wxImage Rotate90( bool clockwise = true ) const; wxImage Mirror( bool horizontally = true ) const; @@ -316,9 +352,13 @@ public: bool SetMaskFromImage(const wxImage & mask, unsigned char mr, unsigned char mg, unsigned char mb); - // converts image's alpha channel to mask, if it has any, does nothing - // otherwise: + // converts image's alpha channel to mask (choosing mask colour + // automatically or using the specified colour for the mask), if it has + // any, does nothing otherwise: bool ConvertAlphaToMask(unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD); + void ConvertAlphaToMask(unsigned char mr, unsigned char mg, unsigned char mb, + unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD); + // This method converts an image where the original alpha // information is only available as a shades of a colour @@ -358,6 +398,9 @@ public: int GetWidth() const; int GetHeight() const; + wxSize GetSize() const + { return wxSize(GetWidth(), GetHeight()); } + // Gets the type of image found by LoadFile or specified with SaveFile wxBitmapType GetType() const;