W3C home > Mailing lists > Public > whatwg@whatwg.org > March 2007

[whatwg] Canvas - globalCompositeOperation

From: Philip Taylor <excors+whatwg@gmail.com>
Date: Thu, 29 Mar 2007 13:14:31 +0100
Message-ID: <ea09c0d10703290514i656e097cq9b6ff52e8550852e@mail.gmail.com>
I've added some tests at
http://canvex.lazyilluminati.com/tests/tests/index.2d.composite.transparent.html
based on the definitions I suggested. Firefox and Safari match the
expected results, Opera misses on atop/xor/lighter. (I skipped darker,
because it doesn't make sense and I'm hoping it'll just go away...)
(The automatic testing may give the wrong answers if your browser has
a getImageData that isn't the same as Firefox's (which returns
premultiplied alpha) - I believe that's a problem in Firefox and/or
the spec, but I'm not looking into it in any detail now.)


When I originally said
|  The calculation of aO must be clamped to the range [0, 1].
that actually should be
|  The calculation of aO and cO must be clamped to the range [0, 1].
because of e.g. the "white lighten white" case, where cO can exceed 1.


On 28/03/07, ddailey <ddailey at zoominternet.net> wrote:
> I suspect you already are aware of this but in addition to the references
> you provide
> the SVG 1.1 reco gives examples of the Porter-Duff composites
> http://www.w3.org/TR/SVG11/filters.html

Thanks, I hadn't thought of looking there. That SVG 1.1 section
(feComposite) seems to skip over the issue of actually defining what
the operators mean, and refers to the Porter-Duff paper. The SVG 1.2
draft at http://www.w3.org/TR/2004/WD-SVG12-20041027/rendering.html#comp-op-prop
does give the equations, and also adds a dozen extra operators, but
removes the ability to define your own arithmetic ones. SVG Tiny 1.2
at http://www.w3.org/TR/SVGMobile12/painting.html#CompositingSimpleAlpha
appears to get rid of all the compositing except for plain source-over
blending, so it's the same as SVG 1.0 at
http://www.w3.org/TR/SVG10/masking.html#SimpleAlphaBlending . (I don't
know what to conclude from this, except that there presumably isn't a
universal consistent convention for what compositing operators should
be provided.)

> It appears that Opera is not handling them properly in SVG either:
> http://srufaculty.sru.edu/david.dailey/svg/newstuff/filterComposite2.svg

It seems to at least do
http://www.w3.org/TR/SVG11/images/filters/feComposite.svg quite close
to the example rendering (whereas Firefox does nothing except
source-over) - the colours are a bit darker, but I don't know if
that's an issue with Opera or with the example.

> David Dailey

-- 
Philip Taylor
excors at gmail.com
Received on Thursday, 29 March 2007 05:14:31 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:58:54 UTC