- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Tue, 7 Dec 2010 05:51:01 -0800
- To: Leif Arne Storset <lstorset@opera.com>
- Cc: "www-style@w3.org" <www-style@w3.org>, Fredrik Söderquist <fs@opera.com>
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