- virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE );
- virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
- virtual bool CanRead( wxInputStream& stream );
-#endif
-};
-#endif
-
-//-----------------------------------------------------------------------------
-// wxImage
-//-----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxImage: public wxObject
-{
- DECLARE_DYNAMIC_CLASS(wxImage)
-
- friend class WXDLLEXPORT wxImageHandler;
-
-public:
-
- wxImage();
- wxImage( int width, int height );
- wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY );
- wxImage( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY );
- wxImage( const wxString& name, const wxString& mimetype );
- wxImage( wxInputStream& stream, const wxString& mimetype );
-
- wxImage( const wxImage& image );
- wxImage( const wxImage* image );
-
- // these functions get implemented in /src/(platform)/bitmap.cpp
- wxImage( const wxBitmap &bitmap );
- operator wxBitmap() const { return ConvertToBitmap(); }
- wxBitmap ConvertToBitmap() const;
-
- void Create( int width, int height );
- void Destroy();
-
- // return the new image with size width*height
- wxImage GetSubImage( const wxRect& ) const;
-
- // return the new image with size width*height
- wxImage Scale( int width, int height ) const;
-
- // rescales the image in place
- void Rescale( int width, int height ) { *this = Scale(width, height); }
+ virtual bool SaveFile( wxOutputStream& stream, int type );
+ virtual bool SaveFile( wxOutputStream& stream, const wxString& mimetype );
+#endif
+
+ bool Ok() const;
+ int GetWidth() const;
+ int GetHeight() const;
+
+ char unsigned *GetData() const;
+ void SetData( char unsigned *data );
+
+ void SetMaskColour( unsigned char r, unsigned char g, unsigned char b );
+ unsigned char GetMaskRed() const;
+ unsigned char GetMaskGreen() const;
+ unsigned char GetMaskBlue() const;
+ void SetMask( bool mask = TRUE );
+ bool HasMask() const;
+
+ unsigned long CountColours( unsigned long stopafter = (unsigned long) -1 );
+ unsigned long ComputeHistogram( wxHashTable &h );
+
+ wxImage& operator = (const wxImage& image)
+ {
+ if ( (*this) != image )
+ Ref(image);
+ return *this;
+ }
+
+ bool operator == (const wxImage& image)
+ { return m_refData == image.m_refData; }
+ bool operator != (const wxImage& image)
+ { return m_refData != image.m_refData; }
+
+ static wxList& GetHandlers() { return sm_handlers; }
+ static void AddHandler( wxImageHandler *handler );
+ static void InsertHandler( wxImageHandler *handler );
+ static bool RemoveHandler( const wxString& name );
+ static wxImageHandler *FindHandler( const wxString& name );
+ static wxImageHandler *FindHandler( const wxString& extension, long imageType );
+ static wxImageHandler *FindHandler( long imageType );
+ static wxImageHandler *FindHandlerMime( const wxString& mimetype );
+
+ static void CleanUpHandlers();
+ static void InitStandardHandlers();