Re: [css3-images] cross-fade()

On Monday 2011-05-09 12:32 -0700, Tab Atkins Jr. wrote:
> On Wed, May 4, 2011 at 9:40 AM, L. David Baron <dbaron@dbaron.org> wrote:
> > I think the current definition of cross-fade() in
> > http://dev.w3.org/csswg/css3-images/#cross-fade-function is
> > incorrect.  It defines cross-fade() in terms of the porter-duff over
> > operator, which is not symmetric.  This means that cross-fade(A, B,
> > 30%) is different from cross-fade(B, A, 70%).
> >
> > I *think*, though I'm not sure, that the right way to define
> > cross-fade is in terms of the plus operator described in section 4.5
> > of the original Porter-Duff paper:
> > http://keithp.com/~keithp/porterduff/
> 
> You are correct that 'src-over' is wrong and 'plus' is correct.  This
> isn't because src-over is asymmetric, but rather because src-over
> simply doesn't do what we want here.

Agreed; however, the fact that it is asymmetric makes it easy to
demonstrate that it's wrong without even resorting to examples. :-)

> As explained above, we don't want 'dissolve', as it does the wrong
> thing, particularly when both src and dst are fully opaque.  Instead
> we want imagick's 'blend' operator, which uses the 'plus' operator.

I think what the Porter-Duff paper calls dissolve() is what you call
the global alpha.  We do still need that part.

-David

-- 
L. David Baron                                 http://dbaron.org/
Mozilla Corporation                       http://www.mozilla.com/

Received on Monday, 9 May 2011 20:10:44 UTC