Large amount of thumbnails in datagridview c#
I have a article table with over 10000 records
There are around 1500 articles with a picture.
And around 500 with around 3 pictures of the article.
Searched for many houres on the internet. But didn't find any option that was good in my case.
Now the program self runs for 5 days each week and is then shut down.
If it would run faster I would integrate it in another program.
So now its just loaded in the datatable so it is fast once it's loaded.
Now the question is can it load faster. just need low quality thumbnails.
Boolean bool3 = System.IO.File.Exists(strImagePath1 + artikel.ArtikelId + ".jpg");
Boolean bool1 = System.IO.File.Exists(strImagePath1 + artikel.ArtikelId + "-1.jpg");
Boolean bool2 = System.IO.File.Exists(strImagePath2 + artikel.ArtikelId + ".jpg");
if (bool3 == true || bool1 == true || bool2 == true)
if (bool3 == true)
bmp = new Bitmap(System.Drawing.Bitmap.FromFile(strImagePath1 + artikel.ArtikelId + ".jpg"));
if (bool1 == true && bool3 == false)
bmp = new Bitmap(System.Drawing.Bitmap.FromFile(strImagePath1 + artikel.ArtikelId + "-1.jpg"));
if (bool2 == true && bool3 == false && bool1 == false)
bmp = new Bitmap(System.Drawing.Bitmap.FromFile(strImagePath2 + artikel.ArtikelId + ".jpg"));
if (bmp.Width > bmp.Height)
result = (double)bmp.Height / bmp.Width * height;
newheight = (int)result;
newwidth = width;
newheight = height;
result = (double)bmp.Width / bmp.Height * width;
newwidth = (int)result;
artikel.Afbeelding = bmp.GetThumbnailImage(newwidth, newheight, null, new IntPtr());
If the product is called seperatly I will call it from the folder.
It can't have effect on sorting/filtering.
The pictures change sometimes to so can't work with reference.
Maybe one option is just loading a thumbnail in the database and get the rest of the images in the folders.
But I would like to know what is your suggestion.
Tried this already but still long loading time.
Thanks in advance
public static System.Drawing.Image ResizeImage(System.Drawing.Image image, int width, int height)
//a holder for the result
Bitmap result = new Bitmap(width, height);
//use a graphics object to draw the resized image into the bitmap
using (Graphics graphics = Graphics.FromImage(result))
//set the resize quality modes to high quality
graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Low;
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed;
//draw the image into the target bitmap
graphics.DrawImage(image, 0, 0, result.Width, result.Height);
//return the resulting bitmap
Re: Large amount of thumbnails in datagridview c#
My guess would be it is, at least in part, due to the fact that you are generating the thumbnails at runtime. If you create the thumbnail as a separate picture and save it in the DB with the full size picture when the full size picture is saved you could save a lot of time during page load. You could save even more by caching the thumbnails since they are small (just make sure that when a picture is changed, you change it's thumbnail in the cache as well as in the DB). This would also allow you to pre-cache the thumbnails when the application first starts.