Re: Displaying linear gamma images

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12 September 2013 16:08, Elle Stone <l.elle.stone@xxxxxxxxx> wrote:
> I've made progress getting a linear gamma image to display without
> posterization in the shadows. I put up a temporary web page with the
> modified code and a picture:
> http://ninedegreesbelow.com/temp/convert-buffer-before-cairo.html
>
> The problem at this point is that the image won't display properly
> until something like doing a very small levels correction forces a
> screen redraw. After forcing a screen redraw, the image is displayed
> without any posterization, but with magenta lines (outlining the
> tiles?). The screen redraw lasts until the level dialog is closed.
>
> I think the problem is that I'm not properly merging and updating
> "buffer" after the hard-coded transform. The corresponding code from
> the lcms.c file uses layer buffers, which seems not applicable to a
> projection:
> gimp_drawable_merge_shadow (layer_id, TRUE);
> gimp_drawable_update (layer_id, 0, 0, layer_width, layer_height);

I do not know the GimpDisplayShell code well, but try to just read out
data from the projection GeglBuffer instead of modifying it. And
instead of the the "gegl_buffer_get (buffer, ... "cairo-ARGB32", ...
data ...)" that you have marked, do the lcms transform such that the
8bit ready-for-display ends up in the "data" buffer.

Also, can you please post your changes as a (git formatted) diff?
It is much easier to read and apply for another contributor trying to
help you out.

-- 
Jon Nordby - www.jonnor.com
_______________________________________________
gimp-developer-list mailing list
List address:    gimp-developer-list@xxxxxxxxx
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list




[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux