Thanks to everyone for the responses. A few comments:


Jay Cox wrote:
> 
> David Hodson wrote:
> > the opinion of (for example) Jim Blinn, and Thomas Porter and Tom Duff.
> 
> All three of whom come from a 3d rendered graphics background.

As do I.

> For compositing and image warping pre multiplied alpha is great.  for
> color correction pre-multiplied alpha just gets in the way.

Agreed. I'm kind of interested in compositing and image warping, though,
and I'd like to see Gimp as widely useful as it can be. When I find
something that it can't do, I try to fix it, subject to the prevailing
design philosophies.


Nick Lamb wrote:

> I'm not aware of any other common interchange format which supports the
> pre-multiplied alpha representation in storage.

I suspect many image formats don't actually specify how rgba data is
defined, though it's not something I've looked at for a while.

> <sigh> No the program which produced your example PNG image is broken.

That would be Gimp  :-)
The original image was loaded from TGA and directly saved to PNG.
Since Gimp didn't know that the targa was pre-multiplied, it left
it alone.


"Garry R. Osgood" wrote:
> 
> [...] How would the unerase
> tool deal with full transparent premultiplied alpha [A*R = A*G= A*B = A = 0]?

This comes back to the distinction I was trying to make between masks
and alpha. Gimp uses (what I refer to as) masks (not alpha) to combine
layers. An rgba image has nothing to unerase where alpha = 0 - the image
doesn't exist there. An rgba layer in Gimp would have a separate mask
channel added, and unerase would still work where the layer had been
erased.

> Premultiplication buys its efficiency
> by removing information content from the layer.

It's arguable that the information isn't there to start with. A pixel
with an alpha value of 0.5 will only contribute to half the colour of
the pixel, so it only needs half the colour information.


-- 
David Hodson  --  [EMAIL PROTECTED]  --  this night wounds time

Reply via email to