[Mono-winforms-list] Patch for bug 426305

Sebastien Pouliot sebastien.pouliot at gmail.com
Thu Mar 31 14:24:30 EDT 2011


On Thu, 2011-03-31 at 17:00 +0100, Dick Porter wrote:
> Hi all
> 
> I've just added a patch to
> https://bugzilla.novell.com/show_bug.cgi?id=426305 and am copying it
> here too for review.
> 
> It removes the premultiplication when loading PNGs, as no other image
> format does the same.  It then adds premultiplication when calling
> assorted Draw*() functions in image.c, except when the graphics context
> is a memory bitmap (so that if an image is drawn onto another image, it
> doesn't get premultiplied multiple times.)

>From the little I recall of the issue it makes sense (but will affect
performance) to delay the pre-multiplication.

The other way would be to keep a flag about the state of each image (and
handle saving correctly, i.e. de-multiplication). 

> I also added a C test case to the bug that demonstrates the various
> parts of the problem.
> 
> This patch doesn't break the fix to bug 324503, which introduced the
> problem.

IIRC there were more than one bug open about this defect so you may get
some extra test cases from bugzilla.

> OK to commit?

I'll let the new MWF maintainers answer that :-) since I do not run any
code that use libgdiplus (or System.Drawing) very often so, unlike many,
I won't be affected, either positively or negatively ;-)

Thanks
Sebastien



More information about the Mono-winforms-list mailing list