[Pixman] [patch] Gradient dithering into pixman

Søren Sandmann soren.sandmann at gmail.com
Tue Mar 27 00:04:48 UTC 2018


A long time ago I wrote this:


about how dithering could be added to pixman. The basic idea is that
"dithering" is a property of the destination image, not of the gradient.  I
still think this is the right way to do it.


On Mon, Mar 26, 2018 at 6:37 PM, Marc Jeanmougin <marc at jeanmougin.fr> wrote:

> Hi,
> I'm Marc, I'm an Inkscape contributor, and I would like to improve
> pixman by providing a patch to allow gradient dithering, to eliminate
> all gradient banding. This "banding" problem is hugely visible in many
> Inkscape files, and I hope you could help me putting it into pixman,
> then in exposing the functionality into cairo.
> I tried to very closely follow the existing code style, and I came up
> with the proof of concept (attached Proof_of_concept.patch ), which
> applies to pixman/master to enable the feature directly.
> Since Inkscape also uses pixman to render files when exporting to png,
> and that kind of dithering affects very significantly the file size (PNG
> compression algorithm and randomness don't mix well) we also need a
> switch to enable/disable it "at will".
> I tried to understand how it could be done by looking at
> pixman_image_set_* functions and finally came up with the other patch
> attached 0001-Adds-a-gradient-dithering-function-to-pixman.patch (which
> cannot directly be tested, since it would require changes in cairo to
> call pixman_image_set_dithering, but changing "gradient->dithering =
> PIXMAN_DITHERING_NONE;" to _BEST in pixman-image.c works)
> Thanks for any help in merging this, or any pointer to how to improve it,
> --
> Marc
> _______________________________________________
> Pixman mailing list
> Pixman at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pixman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pixman/attachments/20180326/dd64cca0/attachment.html>

More information about the Pixman mailing list