1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG interface file for wxImage, wxImageHandler, etc.
 
   7 // Created:     28-Apr-1999
 
   9 // Copyright:   (c) 1998 by Total Control Software
 
  10 // Licence:     wxWindows license
 
  11 /////////////////////////////////////////////////////////////////////////////
 
  21 //----------------------------------------------------------------------
 
  24 %include my_typemaps.i
 
  26 // Import some definitions of other classes, etc.
 
  31 //---------------------------------------------------------------------------
 
  33 class wxImageHandler {
 
  35     // wxImageHandler();    Abstract Base Class
 
  37     wxString GetExtension();
 
  39     wxString GetMimeType();
 
  41     //bool LoadFile(wxImage* image, wxInputStream& stream);
 
  42     //bool SaveFile(wxImage* image, wxOutputStream& stream);
 
  44     void SetName(const wxString& name);
 
  45     void SetExtension(const wxString& extension);
 
  46     void SetType(long type);
 
  47     void SetMimeType(const wxString& mimetype);
 
  50 //---------------------------------------------------------------------------
 
  52 class wxPNGHandler : public wxImageHandler {
 
  58 class wxJPEGHandler : public wxImageHandler {
 
  64 class wxBMPHandler : public wxImageHandler {
 
  70 class wxGIFHandler : public wxImageHandler {
 
  75 class wxPNMHandler : public wxImageHandler {
 
  80 class wxPCXHandler : public wxImageHandler {
 
  85 class wxTIFFHandler : public wxImageHandler {
 
  91 //---------------------------------------------------------------------------
 
  95     wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY );
 
  98     wxBitmap ConvertToBitmap();
 
  99     void Create( int width, int height );
 
 101     wxImage Scale( int width, int height );
 
 102     wxImage& Rescale(int width, int height);
 
 104     void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b );
 
 105     unsigned char GetRed( int x, int y );
 
 106     unsigned char GetGreen( int x, int y );
 
 107     unsigned char GetBlue( int x, int y );
 
 109     bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_PNG );
 
 110     %name(LoadMimeFile)bool LoadFile( const wxString& name, const wxString& mimetype );
 
 112     bool SaveFile( const wxString& name, int type );
 
 113     %name(SaveMimeFile)bool SaveFile( const wxString& name, const wxString& mimetype );
 
 119     wxImage GetSubImage(const wxRect& rect);
 
 121     void Paste( const wxImage &image, int x, int y );
 
 123     //unsigned char *GetData();
 
 124     //void SetData( unsigned char *data );
 
 127         PyObject* GetData() {
 
 128             unsigned char* data = self->GetData();
 
 129             int len = self->GetWidth() * self->GetHeight() * 3;
 
 130             return PyString_FromStringAndSize((char*)data, len);
 
 133         void SetData(PyObject* data) {
 
 134             unsigned char* dataPtr;
 
 136             if (! PyString_Check(data)) {
 
 137                 PyErr_SetString(PyExc_TypeError, "Expected string object");
 
 141             size_t len = self->GetWidth() * self->GetHeight() * 3;
 
 142             dataPtr = (unsigned char*) malloc(len);
 
 143             memcpy(dataPtr, PyString_AsString(data), len);
 
 144             self->SetData(dataPtr);
 
 148     void SetMaskColour( unsigned char r, unsigned char g, unsigned char b );
 
 149     unsigned char GetMaskRed();
 
 150     unsigned char GetMaskGreen();
 
 151     unsigned char GetMaskBlue();
 
 152     void SetMask( bool mask = TRUE );
 
 155     wxImage Rotate(double angle, const wxPoint & centre_of_rotation,
 
 156                    bool interpolating = TRUE, wxPoint * offset_after_rotation = NULL) const ;
 
 157     wxImage Rotate90( bool clockwise = TRUE ) ;
 
 158     wxImage Mirror( bool horizontally = TRUE ) ;
 
 160     void Replace( unsigned char r1, unsigned char g1, unsigned char b1,
 
 161                   unsigned char r2, unsigned char g2, unsigned char b2 );
 
 163     unsigned long CountColours( unsigned long stopafter = (unsigned long) -1 );
 
 164     // TODO: unsigned long ComputeHistogram( wxHashTable &h );
 
 168 // Alternate constructors
 
 169 %new wxImage* wxNullImage();
 
 170 %new wxImage* wxEmptyImage(int width, int height);
 
 171 %new wxImage* wxImageFromMime(const wxString& name, const wxString& mimetype);
 
 172 %new wxImage* wxImageFromBitmap(const wxBitmap &bitmap);
 
 174     wxImage* wxNullImage() {
 
 178     wxImage* wxEmptyImage(int width, int height) {
 
 179         return new wxImage(width, height);
 
 182     wxImage* wxImageFromMime(const wxString& name, const wxString& mimetype) {
 
 183         return new wxImage(name, mimetype);
 
 186     wxImage* wxImageFromBitmap(const wxBitmap &bitmap) {
 
 187         return new wxImage(bitmap);
 
 192 void wxImage_AddHandler(wxImageHandler *handler);
 
 194     void wxImage_AddHandler(wxImageHandler *handler) {
 
 195         wxImage::AddHandler(handler);
 
 199 void wxInitAllImageHandlers();
 
 201 //---------------------------------------------------------------------------
 
 202 //---------------------------------------------------------------------------