Re: [css3-images] A specified algorithm for premultiplied gradients

On Tue, Dec 7, 2010 at 5:42 AM, Leif Arne Storset <lstorset@opera.com> wrote:
> The color stop section [0] of the gradients spec currently reads:
>
>> Between two color-stops, the line's color is linearly interpolated between
>> the colors of the two color-stops, with the interpolation taking place in
>> premultiplied RGBA space.
>
> Our graphics people have requested that a specific algorithm be specified
> for this interpolation. Perhaps something like Boris Zbarsky's [1] could
> be used. It sure helped me understand what was going on, at least.
>
> Transitions [2] may want to specify this too, at least if premultiplied is
> here to stay.
>
> 0. http://dev.w3.org/csswg/css3-images/#color-stop-syntax
> 1. http://lists.w3.org/Archives/Public/www-style/2010Aug/0589.html
> 2. http://dev.w3.org/csswg/css3-transitions/#animation-of-property-types-

Sure.  Would something like this be sufficient?

"""
To transition colors in premultiplied space, first convert each color
to rgba() notation.  Then, convert each to a 4-tuple where the first
three elements are the red, green, and blue components multiplied by
the alpha, and the fourth element is the alpha.  Then, linearly
interpolate the respective components of these 4-tuples.  At each
point, the color expressed in the 4-tuple can be extracted back into
rgba() format by dividing the first three components by the alpha to
regain the red, green, and blue component.
"""

~TJ

Received on Tuesday, 7 December 2010 13:51:55 UTC