Tue 05 Jul 2005 05:58:48 AM UTC, comment #1:
I think the bug is in DrawingTopLevelWindow.HandleFromBitmap:
private IntPtr HandleFromBitmap(Frame frame, bool andMask)
{
// By default we use the data straight from the frame.
byte[] data = frame.Data;
if (andMask)
{
//TODO: this could be slow.
// Create a new image that we will copy the pixels to, leaving the masked pixels black.
DotGNU.Images.Image newImage = new DotGNU.Images.Image(frame.Width, frame.Height, frame.PixelFormat);
// --> frame.PixelFormat is indexed for Icons, isn't it
Frame newFrame = newImage.AddFrame();
// --> newFrame doesn't have a palette yet
data = new byte[data.Length];
for (int y = 0; y < frame.Height; y++)
{
for (int x = 0; x < frame.Width; x++)
{
if (frame.GetMask(x, y) != 0)
newFrame.SetPixel(x, y, frame.GetPixel(x, y));
// --> SetPixel crashes when called on a frame without palette
}
}
data = newFrame.Data;
}
|