[cairo] GIF, PNG and MNG supports

Vladimir Vukicevic vladimir at pobox.com
Tue Oct 23 11:07:10 PDT 2007

Nguyen Vu Hung wrote:
> 2007/10/23, Stuart Parmenter <stuartp at gmail.com>:
>> Image decoders don't belong in cairo.  the PNG stuff was done to make
>> testing easier and should have probably been done in an external
>> library.  It would be great to see someone put together an little
>> external helper library to load images in to cairo surfaces though.
>> stuart
> As stated in the README file:
> ----
> What is cairo
> =============
> Cairo is a 2D graphics library with support for multiple output
> devices. Currently supported output targets include the X Window
> System, win32, and image buffers, as well as PDF, PostScript, and SVG
> file output. Experimental backends include OpenGL (through glitz),
> Quartz, XCB, BeOS, OS/2, and DirectFB.

Exactly; "image buffer" here really means "software bitmap buffer". 
You'll note that there is no mention of PNG; indeed, cairo cannot use 
png as an "output target"; you use a generic image surface, and then you 
can compress that down to png.  As stuart said, those helper functions 
are there for testing purposes, and aren't really a necessary part of 
the API.

> I think make cairo support GIF output is a good thing to do.
> Now GIF patent is expired so more and more applications are coming
> back to support GIF. There is no more politic bullshit regarding GIF
> anymore. IMO, PNG has better than GIF in compression ratio but PNG
> does not support animation. MNG is the future of both GIF and PNG. So
> why we limit ourself in just PNG?

I strongly disagree with putting in GIF (or especially MNG) support 
inside cairo. An image manipulation or generation tool could certainly 
use a gif compressor or libmng or whatever to generate data, but there 
is no support from cairo -necessary- to implement this.

    - Vlad

More information about the cairo mailing list