[CREATE] ORA fullscreen viewers

Martin Renold martinxyz at gmx.ch
Thu Sep 9 14:41:40 PDT 2010


On Wed, Sep 08, 2010 at 08:40:34PM +0200, Jon Nordby wrote:
> In the longer term the situation will hopefully be improved by
> thumbnailers being more widespread, and full-image fallback for OpenRaster
> with good viewer support.

I see the need for screen-resolution ORA viewers getting more pressing.  
I wish I had one myself, I'm abusing MyPaint for that sometimes.  Other
users ask for a commandline tool to convert to png/jpeg.

I have just spent some days to optimize MyPaint saving time[1]. You can
guess how I feel about encoding another PNG of the full image size.

A typical MyPaint ORA in my collection contains two full-resolution PNGs:
background.png and layer000.png.  The background pattern compresses well,
90% of the file size comes from layer000.png.  70% of the saving time is
spent for layer000.png.

If we choose to always include a full-resolution fallback, we would almost
double file size and saving time for such images.  The extra PNG is less of
a burden only if the image structure is more complex and overlapping.

We want to make the image viewer's job easy and reliable, or else they will
hardly bother to add support.  ORA fallbacks are still not specified, making
it impossible to implement a full-resolution ORA renderer that will not
screw up in the future.

I don't expect an ORA viewer to implement many blending modes (if at all),
nor to render a tiled pattern.  But would it be asking too much to do an
OVER composition?  Is this just a MyPaint specific problem, or is my
reasoning true for the needs of other programs?

(If we go that way, it would be ellegant to make whatever the fullscreen
renderer does part of the not-yet-specified fallback mechanism.)

> Though I guess if I want it to happen, I will probably have to do it
> myself...

Of course, the only way to be sure something gets done.


[1] if anyone is interested, I can now reccommend this:
png_set_filter(png_ptr, 0, PNG_FILTER_SUB); // speedup 2x, same size (for brushwork)
png_set_compression_level(png_ptr, 2); // size/speed tradeoff

-- 
Martin Renold


More information about the CREATE mailing list