#include "tag.h"
#include "tags.h"
#include "image.h"
+#include "../png.h"
//----------------------------------------------------------------------------
SWFPLACEOBJECT* swfpo = malloc(sizeof(SWFPLACEOBJECT));
swf_GetPlaceObject(self->tag, swfpo);
i->po = swfpo;
- swf_DeleteTag(self->tag);self->tag = 0;
+ swf_DeleteTag(0, self->tag);self->tag = 0;
if(i->po->id) {
i->character = tagmap_id2obj(self->tagmap, i->po->id);
po->depth = depth;
po->clipdepth = clipdepth;
po->ratio = ratio;
- po->name = name;
+ po->name = (unsigned char*)name;
po->move = move;
if(clipdepth) po->clipdepth = clipdepth;
if(matrix) po->matrix = matrix_getMatrix(matrix);
{
sprite_internal_t*si = (sprite_internal_t*)self->data;
if(self->tag) {
- swf_DeleteTag(self->tag);
+ swf_DeleteTag(0, self->tag);
self->tag = 0;
}
if(!strcmp(a, "tags")) {
i->isindexed = 0;
i->islossless = 1;
- swf_DeleteTag(self->tag);self->tag = 0;
+ swf_DeleteTag(0, self->tag);self->tag = 0;
return 1;
}
static int imagetag_getWidth(PyObject* self)
}
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 image");
+ image_internal_t*fi = (image_internal_t*)itag->data;
+
+ char*filename = 0;
+ if(!PyArg_ParseTuple(args, "s", &filename))
+ return NULL;
+
+ writePNG(filename, (unsigned char*)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,
dealloc: image_dealloc,
getattr: image_getattr,
setattr: 0,
- tagfunctions: 0,
+ tagfunctions: image_methods,
datasize: sizeof(image_internal_t),
};
//----------------------------------------------------------------------------
SHAPE2* shape2 = malloc(sizeof(SHAPE2));
swf_ParseDefineShape(self->tag, shape2);
i->shape2 = shape2;
- swf_DeleteTag(self->tag);self->tag = 0;
+ swf_DeleteTag(0, self->tag);self->tag = 0;
return 1;
}
static void shape_dealloc(tag_internals_t*self)