Rank: Member
Groups: Member
Joined: 3/23/2006(UTC) Posts: 14
|
I am getting a strange error. I'm using the ThumbnailListViewer in a Windows Form application. When I open a form, it loads all of the images into the ThumbnailListViewer. Normally, this works fine. However, if I open the form then close it two or three times in a row I get an InvalidOperationException in the AddImage method in the thumbnailimagelist object. The code is as follows: Code: public override int AddImage(Aurigma.GraphicsMill.Bitmap image)
{
try
{
lock (this)
{
Aurigma.GraphicsMill.Bitmap imgResult = null;
CreateListImage(_imageList.ImageSize, _bkColor, _listItemBackgroundImage, _listItemForegroundImage, image, out imgResult);
_imageList.Images.Add(imgResult.ToGdiplusBitmapDirectly());
imgResult.Dispose();
}
}
catch(Exception)
{
return -1;
}
return _imageList.Images.Count - 1;
}
The Highlighted line is the one that throws the error. Do you know what could be causing this? Thanks. ETA: This is the error and the stacktrace: Code:"Image cannot be added to the ImageList"
at System.Windows.Forms.ImageList.AddToHandle(Original original, Bitmap bitmap)
at System.Windows.Forms.ImageList.ImageCollection.Add(Original original, ImageInfo imageInfo)
at System.Windows.Forms.ImageList.ImageCollection.Add(Image value)
at Aurigma.GraphicsMill.WinControls.ThumbnailImageList.AddImage(Bitmap image)
at Aurigma.GraphicsMill.WinControls.ThumbnailListItem.EvalMethod2()
at Aurigma.GraphicsMill.WinControls.ThumbnailListItem.EvaluateMethod(Int32 methodIndex)
at Aurigma.GraphicsMill.WinControls.Queue.EvaluateQueue()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Edited by user Wednesday, December 19, 2007 3:01:20 PM(UTC)
| Reason: Not specified
|
|
|
|
Rank: Advanced Member
Groups: Member, Administration, Moderator Joined: 8/3/2003(UTC) Posts: 1,070
Thanks: 1 times Was thanked: 12 time(s) in 12 post(s)
|
Hello,
Try to use Bitmap.ToGdiplusBitmap instead of Bitmap.ToGdiplusBitmapDirectly. It should help. |
|
|
|
|
Rank: Member
Groups: Member
Joined: 3/23/2006(UTC) Posts: 14
|
I'm afraid that didn't work. I also tried passing it the _imgresult, but I still get the same error. Are there other possible solutions to this problem?
Thanks,
Brad
|
|
|
|
Rank: Advanced Member
Groups: Member, Administration, Moderator Joined: 8/3/2003(UTC) Posts: 1,070
Thanks: 1 times Was thanked: 12 time(s) in 12 post(s)
|
Hello, It is very oddly... I have the following code sample and everything works fine: Code:Aurigma.GraphicsMill.Bitmap bmp = new Aurigma.GraphicsMill.Bitmap(@"d:/images/test/wizard.jpg");
try
{
imageList1.Images.Add(bmp.ToGdiplusBitmap());
}
finally
{
bmp.Dispose();
}
imageList1.Images[0].Save(@"d:/temp/1.png");
The problem of your previous code sample was in that you create System.Drawing.Bitmap on pixel data of Aurigma.GraphicsMill.Bitmap directly and than dispose Aurigma.GraphicsMill.Bitmap instance. So after that System.Drawing.Bitmap has no pixel data. That was a problem. Could you rebuild all your project and try again? If it will not help - please submit case with your complete sample, which causes the problem. Edited by user Thursday, May 22, 2008 9:57:50 PM(UTC)
| Reason: Not specified |
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.