#include "wx/bitmap.h"
#if wxUSE_STREAMS
- #include "wx/stream.h"
+# include "wx/stream.h"
#endif
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxImageHandler;
-#if wxUSE_LIBPNG
-class WXDLLEXPORT wxPNGHandler;
-#endif
-#if wxUSE_LIBJPEG
-class WXDLLEXPORT wxJPEGHandler;
-#endif
-class WXDLLEXPORT wxBMPHandler;
class WXDLLEXPORT wxImage;
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxImageHandler: public wxObject
{
- DECLARE_DYNAMIC_CLASS(wxImageHandler)
+ DECLARE_CLASS(wxImageHandler)
public:
wxImageHandler() { m_name = ""; m_extension = ""; m_type = 0; }
#if wxUSE_STREAMS
- virtual bool LoadFile( wxImage *image, wxInputStream& stream );
- virtual bool SaveFile( wxImage *image, wxOutputStream& stream );
+ virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=0 );
+ virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+
+ virtual int GetImageCount( wxInputStream& stream );
+
+ bool CanRead( wxInputStream& stream ) { return DoCanRead(stream); }
+ bool CanRead( const wxString& name );
#endif
- inline void SetName(const wxString& name) { m_name = name; }
- inline void SetExtension(const wxString& ext) { m_extension = ext; }
- inline void SetType(long type) { m_type = type; }
- inline void SetMimeType(const wxString& type) { m_mime = type; }
- inline wxString GetName() const { return m_name; }
- inline wxString GetExtension() const { return m_extension; }
- inline long GetType() const { return m_type; }
- inline wxString GetMimeType() const { return m_mime; }
+ void SetName(const wxString& name) { m_name = name; }
+ void SetExtension(const wxString& ext) { m_extension = ext; }
+ void SetType(long type) { m_type = type; }
+ void SetMimeType(const wxString& type) { m_mime = type; }
+ wxString GetName() const { return m_name; }
+ wxString GetExtension() const { return m_extension; }
+ long GetType() const { return m_type; }
+ wxString GetMimeType() const { return m_mime; }
protected:
+ virtual bool DoCanRead( wxInputStream& stream ) = 0;
+
wxString m_name;
wxString m_extension;
wxString m_mime;
};
-//-----------------------------------------------------------------------------
-// wxPNGHandler
-//-----------------------------------------------------------------------------
-
-#if wxUSE_LIBPNG
-class WXDLLEXPORT wxPNGHandler: public wxImageHandler
-{
- DECLARE_DYNAMIC_CLASS(wxPNGHandler)
-
-public:
-
- inline wxPNGHandler()
- {
- m_name = "PNG file";
- m_extension = "png";
- m_type = wxBITMAP_TYPE_PNG;
- m_mime = "image/png";
- };
-#if wxUSE_STREAMS
- virtual bool LoadFile( wxImage *image, wxInputStream& stream );
- virtual bool SaveFile( wxImage *image, wxOutputStream& stream );
-#endif
-};
-#endif
//-----------------------------------------------------------------------------
-// wxJPEGHandler
+// wxImage
//-----------------------------------------------------------------------------
-#if wxUSE_LIBJPEG
-class WXDLLEXPORT wxJPEGHandler: public wxImageHandler
-{
- DECLARE_DYNAMIC_CLASS(wxJPEGHandler)
-
-public:
-
- inline wxJPEGHandler()
- {
- m_name = "JPEG file";
- m_extension = "jpg";
- m_type = wxBITMAP_TYPE_JPEG;
- m_mime = "image/jpeg";
- };
-
-#if wxUSE_STREAMS
- virtual bool LoadFile( wxImage *image, wxInputStream& stream );
- virtual bool SaveFile( wxImage *image, wxOutputStream& stream );
-#endif
-};
-#endif
-
-//-----------------------------------------------------------------------------
-// wxBMPHandler
-//-----------------------------------------------------------------------------
-class WXDLLEXPORT wxBMPHandler: public wxImageHandler
+// GRG: Dic/99
+class WXDLLEXPORT wxHNode
{
- DECLARE_DYNAMIC_CLASS(wxBMPHandler)
-
public:
-
- inline wxBMPHandler()
- {
- m_name = "BMP file";
- m_extension = "bmp";
- m_type = wxBITMAP_TYPE_BMP;
- m_mime = "image/bmp";
- };
-
-#if wxUSE_STREAMS
- virtual bool LoadFile( wxImage *image, wxInputStream& stream );
-#endif
+ unsigned long index;
+ unsigned long value;
};
-//-----------------------------------------------------------------------------
-// wxGIFHandler
-//-----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxGIFHandler : public wxImageHandler
-{
- DECLARE_DYNAMIC_CLASS(wxGIFHandler)
-
-public:
-
- inline wxGIFHandler()
- {
- m_name = "GIF file";
- m_extension = "gif";
- m_type = wxBITMAP_TYPE_GIF;
- m_mime = "image/gif";
- };
-
-#if wxUSE_STREAMS
- virtual bool LoadFile( wxImage *image, wxInputStream& stream );
- virtual bool SaveFile( wxImage *image, wxOutputStream& stream );
-#endif
-};
-
-//-----------------------------------------------------------------------------
-// wxImage
-//-----------------------------------------------------------------------------
class WXDLLEXPORT wxImage: public wxObject
{
wxImage();
wxImage( int width, int height );
- wxImage( const wxString& name, long type = wxBITMAP_TYPE_PNG );
- wxImage( wxInputStream& stream, long type = wxBITMAP_TYPE_PNG );
+ 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 );
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;
unsigned char GetGreen( int x, int y );
unsigned char GetBlue( int x, int y );
- virtual bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_PNG );
+ static bool CanRead( const wxString& name );
+ virtual bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_ANY );
virtual bool LoadFile( const wxString& name, const wxString& mimetype );
#if wxUSE_STREAMS
- virtual bool LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_PNG );
+ static bool CanRead( wxInputStream& stream );
+ virtual bool LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY );
virtual bool LoadFile( wxInputStream& stream, const wxString& mimetype );
#endif
static void CleanUpHandlers();
static void InitStandardHandlers();
+ // GRG: Dic/99
+ unsigned long CountColours( unsigned long stopat = -1 );
+ unsigned long ComputeHistogram( wxHashTable &h );
+
+
protected:
static wxList sm_handlers;
};
+
+extern void WXDLLEXPORT wxInitAllImageHandlers();
+
+
+//-----------------------------------------------------------------------------
+// wxImage handlers
+//-----------------------------------------------------------------------------
+
+#include "wx/imagbmp.h"
+#include "wx/imagpng.h"
+#include "wx/imaggif.h"
+#include "wx/imagpcx.h"
+#include "wx/imagjpeg.h"
+#include "wx/imagtiff.h"
+#include "wx/imagpnm.h"
+
#endif
// _WX_IMAGE_H_