Added wxImage.GetDataBuffer which returns an in-place edit buffer of
the image data. (Patch #546009) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -88,6 +88,8 @@ Added OOR support for wxGridCellRenderer, wxGridCellEditor,
|
||||
wxGridCellAttr, wxGridCellAttrProvider, wxGridTableBase and their
|
||||
derived classes.
|
||||
|
||||
Added wxImage.GetDataBuffer which returns an in-place edit buffer of
|
||||
the image data. (Patch #546009)
|
||||
|
||||
|
||||
|
||||
|
@@ -167,6 +167,12 @@ public:
|
||||
//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;
|
||||
|
@@ -2268,6 +2268,40 @@ static PyObject *_wrap_wxImage_Paste(PyObject *self, PyObject *args, PyObject *k
|
||||
return _resultobj;
|
||||
}
|
||||
|
||||
static PyObject * wxImage_GetDataBuffer(wxImage *self) {
|
||||
unsigned char* data = self->GetData();
|
||||
int len = self->GetWidth() * self->GetHeight() * 3;
|
||||
return PyBuffer_FromReadWriteMemory(data, len);
|
||||
}
|
||||
static PyObject *_wrap_wxImage_GetDataBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||
PyObject * _resultobj;
|
||||
PyObject * _result;
|
||||
wxImage * _arg0;
|
||||
PyObject * _argo0 = 0;
|
||||
char *_kwnames[] = { "self", NULL };
|
||||
|
||||
self = self;
|
||||
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxImage_GetDataBuffer",_kwnames,&_argo0))
|
||||
return NULL;
|
||||
if (_argo0) {
|
||||
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImage_p")) {
|
||||
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetDataBuffer. Expected _wxImage_p.");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
{
|
||||
PyThreadState* __tstate = wxPyBeginAllowThreads();
|
||||
_result = (PyObject *)wxImage_GetDataBuffer(_arg0);
|
||||
|
||||
wxPyEndAllowThreads(__tstate);
|
||||
if (PyErr_Occurred()) return NULL;
|
||||
}{
|
||||
_resultobj = _result;
|
||||
}
|
||||
return _resultobj;
|
||||
}
|
||||
|
||||
static PyObject * wxImage_GetData(wxImage *self) {
|
||||
unsigned char* data = self->GetData();
|
||||
int len = self->GetWidth() * self->GetHeight() * 3;
|
||||
@@ -3128,6 +3162,7 @@ static PyMethodDef imagecMethods[] = {
|
||||
{ "wxImage_SetMaskColour", (PyCFunction) _wrap_wxImage_SetMaskColour, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxImage_SetData", (PyCFunction) _wrap_wxImage_SetData, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxImage_GetData", (PyCFunction) _wrap_wxImage_GetData, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxImage_GetDataBuffer", (PyCFunction) _wrap_wxImage_GetDataBuffer, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxImage_Paste", (PyCFunction) _wrap_wxImage_Paste, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxImage_Copy", (PyCFunction) _wrap_wxImage_Copy, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxImage_GetSubImage", (PyCFunction) _wrap_wxImage_GetSubImage, METH_VARARGS | METH_KEYWORDS },
|
||||
|
@@ -265,6 +265,9 @@ class wxImagePtr(wxObjectPtr):
|
||||
def Paste(self, *_args, **_kwargs):
|
||||
val = apply(imagec.wxImage_Paste,(self,) + _args, _kwargs)
|
||||
return val
|
||||
def GetDataBuffer(self, *_args, **_kwargs):
|
||||
val = apply(imagec.wxImage_GetDataBuffer,(self,) + _args, _kwargs)
|
||||
return val
|
||||
def GetData(self, *_args, **_kwargs):
|
||||
val = apply(imagec.wxImage_GetData,(self,) + _args, _kwargs)
|
||||
return val
|
||||
|
Reference in New Issue
Block a user