gdiplus:GdipDrawImagePointsRect has a nosie vertical line outputafter resampled

Vincent Povirk madewokherd at gmail.com
Sat Nov 22 22:57:52 CST 2014


This will cause us to draw outside of the destination when the image
is both enlarged and rotated.

That if statement is there to make sure we only draw to the area
inside the shape defined by the points array. src_pointf should be
within the range defined by srcx/srcy/srcwidth/srcheight if and only
if (x,y) is within that shape. If that's not the case, it probably
means we're calculating src_pointf incorrectly for the whole image,
not just the edges.

I'm not sure Sebastian realized this, but in this case
GdipBitmapGetPixel is different from reading the image directly.
Because PixelFormat32bppRGB does not store alpha data in the bitmap,
GdipBitmapGetPixel will always return an alpha value of 255, and you
will get a non-zero value even if the pixel is black. I suggest
testing for the exact value you expect. That should also remove the
need for the trace() calls.



More information about the wine-devel mailing list