#include "wx/bitmap.h"
#if wxUSE_STREAMS
- #include "wx/stream.h"
+# include "wx/stream.h"
#endif
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxJPEGHandler;
#endif
class WXDLLEXPORT wxBMPHandler;
+#if wxUSE_GIF
+class WXDLLEXPORT wxGIFHandler;
+#endif
+#if wxUSE_PNM
+class WXDLLEXPORT wxPNMHandler;
+#endif
+#if wxUSE_PCX
+class WXDLLEXPORT wxPCXHandler;
+#endif
class WXDLLEXPORT wxImage;
//-----------------------------------------------------------------------------
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 );
+ virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+
+ virtual bool CanRead( wxInputStream& stream );
+ virtual bool CanRead( const wxString& name );
#endif
inline void SetName(const wxString& name) { m_name = name; }
};
#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 );
+ virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+ virtual bool CanRead( wxInputStream& stream );
+private:
+ // hiding base class virtuals again!
+ inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); };
#endif
};
#endif
};
#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 );
+ virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+ virtual bool CanRead( wxInputStream& stream );
+private:
+ // hiding base class virtuals again!
+ inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); };
#endif
};
#endif
};
#if wxUSE_STREAMS
- virtual bool LoadFile( wxImage *image, wxInputStream& stream );
+ virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE );
+ virtual bool CanRead( wxInputStream& stream );
+private:
+ // hiding base class virtuals again!
+ inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); };
#endif
};
// wxGIFHandler
//-----------------------------------------------------------------------------
+#if wxUSE_GIF
+
class WXDLLEXPORT wxGIFHandler : public wxImageHandler
{
DECLARE_DYNAMIC_CLASS(wxGIFHandler)
};
#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 );
+ virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+ virtual bool CanRead( wxInputStream& stream );
+private:
+ // hiding base class virtuals again!
+ inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); };
+#endif
+};
+#endif
+
+//-----------------------------------------------------------------------------
+// wxPNMHandler
+//-----------------------------------------------------------------------------
+
+#if wxUSE_PNM
+class WXDLLEXPORT wxPNMHandler : public wxImageHandler
+{
+ DECLARE_DYNAMIC_CLASS(wxPNMHandler)
+
+public:
+
+ inline wxPNMHandler()
+ {
+ m_name = "PNM file";
+ m_extension = "pnm";
+ m_type = wxBITMAP_TYPE_PNM;
+ m_mime = "image/pnm";
+ };
+
+#if wxUSE_STREAMS
+ 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 );
+private:
+ // hiding base class virtuals again!
+ inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); };
#endif
};
+#endif
+
+//-----------------------------------------------------------------------------
+// wxPCXHandler
+//-----------------------------------------------------------------------------
+
+#if wxUSE_PCX
+class WXDLLEXPORT wxPCXHandler : public wxImageHandler
+{
+ DECLARE_DYNAMIC_CLASS(wxPCXHandler)
+
+public:
+
+ inline wxPCXHandler()
+ {
+ m_name = "PCX file";
+ m_extension = "pcx";
+ m_type = wxBITMAP_TYPE_PCX;
+ m_mime = "image/pcx";
+ };
+
+#if wxUSE_STREAMS
+ 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
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 );
+ 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 );
+ 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();
-
+
protected:
static wxList sm_handlers;
};
+extern void wxInitAllImageHandlers();
+
#endif
// _WX_IMAGE_H_