bool SetMaskFromImage(const wxImage & mask,
byte mr, byte mg, byte mb);
- void DoFloodFill (wxCoord x, wxCoord y,
- const wxBrush & fillBrush,
- const wxColour& testColour,
- int style = wxFLOOD_SURFACE,
- int LogicalFunction = wxCOPY /* currently unused */ ) ;
+// void DoFloodFill (wxCoord x, wxCoord y,
+// const wxBrush & fillBrush,
+// const wxColour& testColour,
+// int style = wxFLOOD_SURFACE,
+// int LogicalFunction = wxCOPY /* currently unused */ ) ;
static bool CanRead( const wxString& name );
static int GetImageCount( const wxString& name, long type = wxBITMAP_TYPE_ANY );
//void SetData( unsigned char *data );
%addmethods {
+ PyObject* GetDataBuffer() {
+ unsigned char* data = self->GetData();
+ int len = self->GetWidth() * self->GetHeight() * 3;
+ return PyBuffer_FromReadWriteMemory(data, len);
+ }
+
PyObject* GetData() {
unsigned char* data = self->GetData();
int len = self->GetWidth() * self->GetHeight() * 3;
return PyString_FromStringAndSize((char*)data, len);
}
+ void SetDataBuffer(PyObject* data) {
+ unsigned char* buffer;
+ int size;
+
+ if (!PyArg_Parse(data, "w#", &buffer, &size))
+ return;
+
+ if (size != self->GetWidth() * self->GetHeight() * 3) {
+ PyErr_SetString(PyExc_TypeError, "Incorrect buffer size");
+ return;
+ }
+
+ self->SetData(buffer);
+ }
+
void SetData(PyObject* data) {
unsigned char* dataPtr;
dataPtr = (unsigned char*) malloc(len);
memcpy(dataPtr, PyString_AsString(data), len);
self->SetData(dataPtr);
+ // wxImage takes ownership of dataPtr...
}
}