Ugh... Qt4 porting

Mosfet dan.duley at verizon.net
Mon May 16 13:55:30 BST 2005


Hi Lars! You guys really need to start CCing me. I'm not on the list so am 
cutting and pasting responses from the mailing list archive ;-)

>Lars wrote:
...snip...
>> I'm also curious about what they are going to do with the new Premultiplied
>> format. As far as I can tell it's a 32bpp format with the source part of
>> the alpha already calculated. Good if your going to alphablend the image a
>> lot, bad if you want to modify the original color channels. 
>
>The image paint engine uses it. All drawing operations are a lot faster when 
>using premultiplied alpha. It's also the format used by RENDER, so it matches 
>fine there as well.
>
>And I don't see why you shouldn't be able to modify the color channels in a 
>premultiplied image more or less the same way then in a non premultiplied 
>one.

Because a pixel's RGB values aren't the actual RGB values, they are averaged 
with the alpha value. So if your doing something like interpolating a color 
you'd be interpolating with the wrong color, no? Even simple things like the 
gray level would be wrong. A red value of 25 may actually be 100 but with 
1/4th the opacity. Most effects won't work properly with this.

>> Right now I just return if I get one of these.
>
>QImage has a convertToFormat() method you could use: Convert to a format you 
>can handle, and convert back at the end. Not fast, but maybe better than just 
>not doing anything.
 
We promote images to 32bpp when we have to but generally do not do things that 
require a lot of conversion, for example we don't do effects on 1bpp images 
by promoting them. I guess it would depend on how often it is used. Doing so 
will kill performance, and in such cases the approach has been that it's 
better to warn the developer.





More information about the kde-core-devel mailing list