X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpython%2Fimage.c;h=5b125e623fde37444c734c9974640c7dd5eee427;hb=879d0eec420fe0fd5ddcd56c8fe62b82a6744edd;hp=8b390ebfa3f03d77672325e399f8d9a875db7149;hpb=be57616086f3764f47639f6457b7e290e38e4ba1;p=swftools.git diff --git a/lib/python/image.c b/lib/python/image.c index 8b390eb..5b125e6 100644 --- a/lib/python/image.c +++ b/lib/python/image.c @@ -1,6 +1,12 @@ #include +#ifdef HAVE_STAT +#undef HAVE_STAT +#endif //#include "/usr/include/python2.3/Imaging.h" +#include "../../config.h" +#ifdef HAVE_PYTHON_IMAGING #include +#endif #include "pyutils.h" #undef HAVE_STAT #include "../rfxswf.h" @@ -9,28 +15,41 @@ /* there should be a better way to do this... */ typedef struct { PyObject_HEAD +#ifdef HAVE_PYTHON_IMAGING Imaging image; +#endif } ImagingObject; int image_getWidth(PyObject*_image) { +#ifdef HAVE_PYTHON_IMAGING if(strcmp(_image->ob_type->tp_name, "ImagingCore")) { PyErr_SetString(PyExc_Exception, setError("not an image: %s", _image->ob_type->tp_name)); return 0; } ImagingObject*image = (ImagingObject*)_image; return image->image->xsize; +#else + PyErr_SetString(PyExc_Exception, "imaging not compiled in"); + return 0; +#endif } int image_getHeight(PyObject*_image) { +#ifdef HAVE_PYTHON_IMAGING if(strcmp(_image->ob_type->tp_name, "ImagingCore")) { PyErr_SetString(PyExc_Exception, setError("not an image: %s", _image->ob_type->tp_name)); return 0; } ImagingObject*image = (ImagingObject*)_image; return image->image->ysize; +#else + PyErr_SetString(PyExc_Exception, "imaging not compiled in"); + return 0; +#endif } int image_getBPP(PyObject*_image) { +#ifdef HAVE_PYTHON_IMAGING if(strcmp(_image->ob_type->tp_name, "ImagingCore")) { PyErr_SetString(PyExc_Exception, setError("not an image: %s", _image->ob_type->tp_name)); return 0; @@ -53,10 +72,15 @@ int image_getBPP(PyObject*_image) { } PyErr_SetString(PyExc_Exception, setError("Unknown image format (%s).", image->image->mode)); return 0; +#else + PyErr_SetString(PyExc_Exception, "imaging not compiled in"); + return 0; +#endif } RGBA* image_toRGBA(PyObject*_image) { +#ifdef HAVE_PYTHON_IMAGING if(strcmp(_image->ob_type->tp_name, "ImagingCore")) { PyErr_SetString(PyExc_Exception, setError("not an image: %s", _image->ob_type->tp_name)); return 0; @@ -92,5 +116,45 @@ RGBA* image_toRGBA(PyObject*_image) } PyErr_SetString(PyExc_Exception, setError("Unsupported image format: %s (try .convert(\"RGBA\")", image->image->mode)); +#else + PyErr_SetString(PyExc_Exception, "imaging not compiled in"); +#endif + return 0; +} + +#ifdef HAVE_PYTHON_IMAGING +extern PyObject*PyImagingNew(Imaging imOut); +#endif + +PyObject* rgba_to_image(RGBA*rgba, int width, int height) +{ +#ifdef HAVE_PYTHON_IMAGING +#ifndef WIN32 + Imaging img = ImagingNew("RGBA", width, height); + int y; + if(!img->image32) { + fprintf(stderr, "No array allocated!\n"); + return 0; + } + for(y=0;yimage32[y]); + RGBA* src = &rgba[width*y]; + int x; + for(x=0;x