FYI, when using RotateMBS on Win32 with a 32 bit image source, although the
image itself rotates fine, the image mask may have junk in the image channel.
The mask junk is not, fortunately in the mask's alpha channel so the fix is
therefore just to draw the mask to a temporary picture after rotating, which
removes the junk:
// assume p0 is a 32 bit image with alpha
dim tmp as picture = p0
dim tmpMask as picture = p0.CopyMask
tmp = tmp.RotateMBS(angle, backColor)
dim backMaskColor as color =
tmpMask = tmpMask.RotateMBS(angle, backMaskColor) // on win32 there
is junk in the RGB channel
#if TargetWin32
// fix for win32 bugs
dim t2 as picture = new picture(tmpMask.Width,tmpMask.Height)
t2.Graphics.ForeColor = backMaskColor
t2.Graphics.FillRect 0,0,t2.width, t2.height
t2.graphics.drawPicture tmpMask,0,0
tmpMask = t2
#endif
// recombine picture and mask
dim dest as new picture(tmp.width,tmp.height)
dest.FillPicture() // clean it out
dest.FillPicture(backColor)
dest.Graphics.DrawPicture tmp,0,0
dest.ApplyMask tmpMask
Perhaps this could be fixed in MBS plugins, or at least added as a note to
documentation?
___
Mbsplugins_monkeybreadsoftware.info mailing list
mbsplugins@monkeybreadsoftware.info
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info