From 82710154a148b2debb2ee3cc23f6a55880b847f7 Mon Sep 17 00:00:00 2001 From: kramm Date: Fri, 18 Nov 2005 17:29:48 +0000 Subject: [PATCH] added png save support --- lib/python/Makefile.in | 6 +++--- lib/python/tags.c | 25 ++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/python/Makefile.in b/lib/python/Makefile.in index faebdc2..9616cdc 100644 --- a/lib/python/Makefile.in +++ b/lib/python/Makefile.in @@ -26,8 +26,8 @@ pyutils.$(O): pyutils.c pyutils.h SWF.$(O): SWF.c pyutils.h primitives.h taglist.h $(C) -Wall -Wno-unused -fPIC $(PYTHON_INCLUDES) -c SWF.c -o SWF.$(O) -SWF.$(SLEXT): SWF.$(O) taglist.$(O) tag.$(O) image.$(O) tags.$(O) tagmap.$(O) action.$(O) primitives.$(O) pyutils.$(O) ../librfxswf$(A) Makefile - $(L) -g $(SHARED) SWF.$(O) tagmap.$(O) taglist.$(O) tag.$(O) image.$(O) tags.$(O) action.$(O) primitives.$(O) pyutils.$(O) -o SWF.$(SLEXT) $(PYTHON_LIB) ../librfxswf$(A) $(LIBS) +SWF.$(SLEXT): SWF.$(O) taglist.$(O) tag.$(O) image.$(O) tags.$(O) tagmap.$(O) action.$(O) primitives.$(O) pyutils.$(O) ../librfxswf$(A) ../png.$(O) Makefile + $(L) -g $(SHARED) SWF.$(O) tagmap.$(O) taglist.$(O) tag.$(O) image.$(O) tags.$(O) action.$(O) primitives.$(O) pyutils.$(O) -o SWF.$(SLEXT) $(PYTHON_LIB) ../librfxswf$(A) ../png.$(O) $(LIBS) #TODO: install: @@ -36,7 +36,7 @@ install: mypython$(E): mypython.c Makefile $(L) -Wno-redundant-decls -g $(PYTHON_INCLUDES) mypython.c -o mypython$(E) $(PYTHON_LIB) swfpython$(E): swfpython.c Makefile primitives.$(O) tagmap.$(O) taglist.$(O) tag.$(O) tags.$(O) action.$(O) pyutils.$(O) SWF.$(O) - $(L) -Wno-redundant-decls -g $(PYTHON_INCLUDES) swfpython.c -o swfpython$(E) $(PYTHON_LIB) ../librfxswf$(A) $(LIBS) + $(L) -Wno-redundant-decls -g $(PYTHON_INCLUDES) swfpython.c -o swfpython$(E) $(PYTHON_LIB) ../librfxswf$(A) ../png.$(O) $(LIBS) testmem$(E): testmem.c Makefile $(L) $(PYTHON_INCLUDES) testmem.c -o testmem$(E) $(PYTHON_LIB) $(LIBS) diff --git a/lib/python/tags.c b/lib/python/tags.c index f28f1b6..2434d44 100644 --- a/lib/python/tags.c +++ b/lib/python/tags.c @@ -5,6 +5,7 @@ #include "tag.h" #include "tags.h" #include "image.h" +#include "../png.h" //---------------------------------------------------------------------------- @@ -624,6 +625,28 @@ static PyObject* image_getattr(tag_internals_t*self,char*a) } return 0; } + +static PyObject* image_save(PyObject*self, PyObject*args) +{ + tag_internals_t*itag = tag_getinternals(self); + if(!image_parse(itag)) + return PY_ERROR("Couldn't parse shape"); + image_internal_t*fi = (image_internal_t*)itag->data; + + char*filename = 0; + if(!PyArg_ParseTuple(args, "s", &filename)) + return NULL; + + writePNG(filename, fi->rgba ,fi->width, fi->height); + + return PY_NONE; +} + +static PyMethodDef image_methods[] = +{{"save", image_save, METH_VARARGS, "saves an image as PNG"}, + {NULL, NULL, 0, NULL} +}; + static tag_internals_t image_tag = { parse: image_parse, @@ -631,7 +654,7 @@ static tag_internals_t image_tag = dealloc: image_dealloc, getattr: image_getattr, setattr: 0, - tagfunctions: 0, + tagfunctions: image_methods, datasize: sizeof(image_internal_t), }; //---------------------------------------------------------------------------- -- 1.7.10.4