Discussion:
[Matplotlib-users] paletted PNG backend
Jesper Larsen
2016-02-15 08:18:57 UTC
Permalink
Hi Matplotlib users,

We are using Matplotlib for a web service which makes PNG images on the fly
for presentation on a map (web site using the web service is here:
https://ifm-beta.fcoo.dk)

Performance and image size are two major concerns for us. We therefore save
the resulting RGBA PNG to a buffer and afterwards use Pillow (PIL) to
convert it to a P PNG (paletted PNG) to reduce the image size dramatically.

This procedure does however use a significant amount of our total
processing time per image. I would therefore be interested in extending
e.g. the AGG backend to produce paletted PNGs directly. I am of course
aware that this might not be useful for many others since one would have to
provide some extra information when rendering with this backend (possibly
output palette and quantizing method). But on the other hand it might be
useful for others doing web services using matplotlib.

My questions are:

1) Is it possible to extend the AGG backend for this and how?

2) Is it better to make a separate Pillow based backend for this (Pillow is
probably not as fast as AGG)?

Best regards,
Jesper

Loading...