22#include < png.h>
33#include " ft2font.h"
44#include " _backend_agg.h"
5+
6+ #include " util/agg_color_conv_rgb8.h"
57#include " _image.h"
68
79static PyObject *ErrorObject;
@@ -909,6 +911,34 @@ RendererAgg_write_png(RendererAggObject *renderer, PyObject *args)
909911 return Py_None;
910912}
911913
914+ char RendererAgg_tostring_rgb__doc__[] =
915+ " numrows, numcols, s = tostring_rgb()"
916+ " \n "
917+ " Return the rendered buffer as an RGB string" ;
918+
919+ static PyObject *
920+ RendererAgg_tostring_rgb (RendererAggObject *renderer, PyObject* args) {
921+
922+ if (!PyArg_ParseTuple (args, " :tostring_rgb" ))
923+ return NULL ;
924+ int row_len = renderer->rbase ->width ()*3 ;
925+ unsigned char * buf_tmp =
926+ new unsigned char [row_len * renderer->rbase ->height ()];
927+ agg::rendering_buffer rbuf_tmp;
928+ rbuf_tmp.attach (buf_tmp,
929+ renderer->rbase ->width (),
930+ renderer->rbase ->height (),
931+ row_len);
932+
933+ color_conv (&rbuf_tmp, renderer->rbuf , agg::color_conv_rgba32_to_rgb24 ());
934+
935+
936+ return Py_BuildValue (" s#" ,
937+ buf_tmp,
938+ row_len * renderer->rbase ->height ());
939+
940+
941+ }
912942
913943
914944// must be defined before getattr
@@ -918,9 +948,8 @@ static PyMethodDef RendererAgg_methods[] = {
918948 { " draw_rectangle" , (PyCFunction)RendererAgg_draw_rectangle, METH_VARARGS},
919949 { " draw_polygon" , (PyCFunction)RendererAgg_draw_polygon, METH_VARARGS},
920950 { " draw_image" , (PyCFunction)RendererAgg_draw_image, METH_VARARGS, RendererAgg_draw_image__doc__},
921- { " draw_lines" , (PyCFunction)RendererAgg_draw_lines, METH_VARARGS},
922-
923- { " draw_text" , (PyCFunction)RendererAgg_draw_text, METH_VARARGS, RendererAgg_draw_text__doc__},
951+ { " draw_lines" , (PyCFunction)RendererAgg_draw_lines, METH_VARARGS}, { " draw_text" , (PyCFunction)RendererAgg_draw_text, METH_VARARGS, RendererAgg_draw_text__doc__},
952+ { " tostring_rgb" , (PyCFunction)RendererAgg_tostring_rgb, METH_VARARGS, RendererAgg_tostring_rgb__doc__},
924953 { " write_rgba" , (PyCFunction)RendererAgg_write_rgba, METH_VARARGS},
925954 { " write_png" , (PyCFunction)RendererAgg_write_png, METH_VARARGS},
926955
0 commit comments