[Interest] About copying the image buffer with alpha blending
Till Oliver Knoll
till.oliver.knoll at gmail.com
Wed Aug 29 12:37:29 CEST 2012
Am 29.08.2012 um 12:05 schrieb Samuel Rødal <samuel.rodal at nokia.com>:
> On 08/29/2012 11:54 AM, ext song.7.liu at nokia.com wrote:
>> Is the premultiplied specified when creating QImage or other ?
>
> The QImage constructor takes the QImage::Format. But if you load the
> image from file it should already pick Format_ARGB32_Premultiplied by
> default if the image has an alpha channel.
As a matter of fact I am just in this very topic ("alpha-blending and premultiplied values") myself.
I am not entirely sure, but I think when I loaded a PNG with alpha channel the format was *not* premultiplied alpha (but "normal" RGBA32 instead).
It probably depends on the source file: if the original data is premultipied RGBA, then the resulting QImage is most likely also RGBA premultiplied.
(Does the PNG file format support "premultiplied" RGBA?)
In other words: "you get what you load"(tm) with QImage::load - which is good! Qt shouldn't convert data behind your back unnecessarily.
So in my case the PNG contained "normal" RGBA values - so that was the pixel format of the resulting QImage.
However: you can always query the pixel format after loading and explicitly request a (possibly costly) conversion, if necessary:
http://qt-project.org/doc/qt-4.8/qimage.html#convertToFormat
Cheers,
Oliver
More information about the Interest
mailing list