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 -- hodsond@xxxxxxx -- this night wounds time