W3C home > Mailing lists > Public > www-svg@w3.org > January 2013

Re: [filter-effects] color-interpolation-filters

From: Stephen Chenney <schenney@chromium.org>
Date: Mon, 7 Jan 2013 09:09:38 -0500
Message-ID: <CAObCcUrkWUFvdVxqMi5TaOT5yWMQOY1P89OP1Q2rJzLRNBgZMw@mail.gmail.com>
To: Tavmjong Bah <tav.w3c@gmail.com>
Cc: "www-svg@w3.org" <www-svg@w3.org>
You read my mind. I'm working in this area in WebKit right now and am also
confused about the expected behavior. My plan is to try to match Opera and
Mozilla, as they seem to agree on feDisplacementMap behavior. It would be
nice if I did not have to reverse engineer the spec.

Another question: Does the color-interpolation-filter property get applied
before or after premultiplied/un-premultipled color conversion? Because
color space conversions are non-linear, the results vary depending on the
order of operations.

When you talk about feFlood, I would expect the color is defined in sRGB
space, but then it could be converted to linearRGB for the fill if the
color-interpolation-filters indicates to do so. What happens next depends
on how the flood is used, but if you just display it I'm guessing that the
results are converted back to sRGB for display, leaving you with the
appearance of ignoring the color-interpolation-filter (i.e. Opera and
Mozilla are right).

Stephen.


On Mon, Jan 7, 2013 at 8:54 AM, Tavmjong Bah <tav.w3c@gmail.com> wrote:

>
> Hi,
>
> I've recently added support for the value 'linearRGB' for the property
> 'color-interpolation-filters' to Inkscape (previously, Inkscape assumed
> a value of 'sRGB'). I found the SVG 1.1 specification to be not very
> clear as to how this property is suppose to be implemented in all cases.
> The Filter Effects draft seems to just have copied the SVG 1.1 text so
> there has been no improvement. The effect of the property is only
> specifically defined for feDisplacementMap and feTurbulence. My best
> guess as to how things should be implement (dividing the filters into
> three classes) is:
>
> Assuming a value of 'linearRGB':
>
> Composite like:
>
>   Input(s) transformed to linearRGB if not already in linearRGB
>   Output linearRGB
>
>   feBlend, feColorMatrix, feComponentTransfer, feComposite,
> feConvolveMatrix, feGaussianBlur, feImage(?), feMerge,
>
> Source like:
>
>   Output in linearRGB (following spec for feTurbulence)
>
>   feFlood, feTurbulence, feDisffuseLighting, feSpecularLighting
>
> Copy like:
>
>   Output is same as input (following spec for feDisplacementMap)
>
>   feDisplacementMap, feMorphology, feOffset, feTile
>
>
> Note: Firefox and Opera currently interpret feFlood color as being
> defined in sRGB while Chrome follows the value of
> color-interpolation-filters.
>
>
> Tav
>
>
>
>
>
Received on Monday, 7 January 2013 14:10:05 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 15:54:53 GMT