Author: tack
Date: Wed May 30 18:24:13 2007
New Revision: 2701
Modified:
trunk/evas/src/__init__.py
trunk/evas/src/image.c
Log:
Require stride, and other stuff ... :)
Modified: trunk/evas/src/__init__.py
==============================================================================
--- trunk/evas/src/__init__.py (original)
+++ trunk/evas/src/__init__.py Wed May 30 18:24:13 2007
@@ -191,6 +191,7 @@
def color_get(self):
r, g, b, a = self._object.color_get()
+ return r, g, b, a
return color_argb_unpremul(a, r, g, b) + (a,)
def color_set(self, r=None, g=None, b=None, a=None):
@@ -200,7 +201,7 @@
return x
(r, g, b, a) = map(f, (r, g, b, a), self.color_get())
(r, g, b, a) = map(lambda x: min(255, max(0, x)), (r, g, b, a))
- r, g, b = color_argb_premul(a, r, g, b)
+ #r, g, b = color_argb_premul(a, r, g, b)
return self._object.color_set(r, g, b, a)
Modified: trunk/evas/src/image.c
==============================================================================
--- trunk/evas/src/image.c (original)
+++ trunk/evas/src/image.c Wed May 30 18:24:13 2007
@@ -316,25 +316,27 @@
Evas_Object_PyObject_image_data_set(Evas_Object_PyObject * self, PyObject *
args, PyObject *kwargs)
{
PyObject *buffer, *stride;
- void *data;
- int len, result, is_write_buffer = 0, copy;
+ void *data = 0;
+ int len, result, is_write_buffer = 0, copy, cspace;
if (!PyArg_ParseTuple(args, "OiO", &buffer, ©, &stride))
return NULL;
- if (PyNumber_Check(buffer)) {
- int cspace = evas_object_image_colorspace_get(self->object);
+ cspace = evas_object_image_colorspace_get(self->object);
+ if ((!PyNumber_Check(buffer) || PyLong_AsLong(buffer) != 0) &&
+ (cspace == EVAS_COLORSPACE_YCBCR422P601_PL || cspace ==
EVAS_COLORSPACE_YCBCR422P709_PL)) {
+ int w, h;
is_write_buffer = 1;
- data = (void *) PyLong_AsLong(buffer);
- if (data && (cspace == EVAS_COLORSPACE_YCBCR422P601_PL || cspace ==
EVAS_COLORSPACE_YCBCR422P709_PL)) {
- int w, h;
- if (!PyNumber_Check(stride)) {
- PyErr_SetString(PyExc_ValueError, "stride parameter is not an
integer");
- return NULL;
- }
- evas_object_image_size_get(self->object, &w, &h);
- data = _yuv_planes_to_rows(buffer, w, h, PyLong_AsLong(stride));
+ if (!PyNumber_Check(stride)) {
+ PyErr_SetString(PyExc_ValueError, "stride parameter is not an
integer");
+ return NULL;
}
+ evas_object_image_size_get(self->object, &w, &h);
+ data = _yuv_planes_to_rows(buffer, w, h, PyLong_AsLong(stride));
+ }
+ else if (PyNumber_Check(buffer)) {
+ is_write_buffer = 1;
+ data = (void *)PyLong_AsLong(buffer);
} else {
result = PyObject_AsWriteBuffer(buffer, &data, &len);
if (result != -1) {
@@ -436,18 +438,13 @@
{
Evas_Pixel_Import_Source ps;
PyObject *data;
- int result;
+ int result, stride;
- if (!PyArg_ParseTuple(args, "Oiii", &data, &ps.w, &ps.h, &ps.format))
+ if (!PyArg_ParseTuple(args, "Oiiii", &data, &ps.w, &ps.h, &ps.format,
&stride))
return NULL;
if (ps.format == EVAS_PIXEL_FORMAT_YUV420P_601) {
- PyObject *stride = PyDict_GetItemString(kwargs, "stride");
- if (!stride || !PyNumber_Check(stride)) {
- PyErr_SetString(PyExc_ValueError, "stride parameter is missing or
not an integer");
- return NULL;
- }
- ps.rows = _yuv_planes_to_rows(data, ps.w, ps.h, PyLong_AsLong(stride));
+ ps.rows = _yuv_planes_to_rows(data, ps.w, ps.h, stride);
BENCH_START
result = evas_object_image_pixels_import(self->object, &ps);
BENCH_END
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog