Re: JPEG Support For Libcairo

Behdad Esfahbod <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
On 15-12-29 12:16 PM, Adrian Johnson wrote:
> On 29/12/15 12:35, Enrico Weigelt, metux IT consult wrote:
>> On 28.12.2015 15:12, Bernhard Fischer wrote:
>>> I implemented two small functions which read/write JPEG into/from a Cairo 
>>> image surface.
>>
>> Added it to cairo tree - see patches.
>>
> 
> The API is missing the stream functions. JPEG API has previously been
> proposed [1]. Behdad's reply [2] summarizes the reason the patches were
> declined:

Hi everyone,

Indeed, at the time, the impression I got from Carl and others was that the
PNG support is just a convenience and everything else should be done on top.
gtkpixbuf is one such library that supports a bunch of formats.  I imagine the
glib dependency might not be desirable, so someone might want to start a new
library.

At Google, we have code for a faster PNG export as well as JPG and a couple
other formats.  I have had wanted to open source it for a while, but it hasn't
been priority.

I still think these should go in a separate library, for the following reasons:

  - It should be possible to implement reader/writer for new / custom formats
solely on top of the public API.  In other words, if there's a need for such a
reader/writer that is not possible with the public API, then the public API
needs to be extended,

  - There are many many formats, and adding support for all of them is both
impractical and not the focus of whatever limited maintenance resources we
have left for cairo,

  - Implementing reader/writers correctly (the stream and non-stream versions,
threadsafe, etc) is a lot of work, with diminishing returns as soon as you
address the top 2 / 3 formats, but if we establish that new formats are
accepted in cairo itself, there will forever be people who want to contribute
implementation for one more format.  It's a slippery slope we don't want to go
down...


Maybe one can write a single-file library to hook up cairo to the image
routines here:

  https://github.com/nothings/stb

Cheers, and happy Gregorian new year in advance,

behdad


>   "PNG support is cairo's way to import and export images, and it
>   does the job just like that, losslessly and in a rather efficient
>   format. Anything else should be implemented on top of other cairo
>   API.  It's like the toy text api."
> 
> [1] http://lists.cairographics.org/archives/cairo/2007-January/009194.html
> [2] http://lists.cairographics.org/archives/cairo/2007-January/009200.html
> 
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.