I am trying to create a windows form on .NET framwork (C#) that shows the list of images o( Photo Gallery) of all users on my list. I tried to code it but it doesn't show any image, just the label or name.
These set of code is what I have so far, on formload event on my project.
private void PicGallery_Load(object sender, EventArgs e)
{
ShowStudentImages();
}
private void ShowStudentImages()
{
foreach (Students student in _studentList)
{
// Skapa rätt storlek för bilderna - se img control i design
Image thumbLarge = GetThumb(student.PictureStudents, 128);
Image thumbSmall = GetThumb(student.PictureStudents, 32);
// Lägg till bilden i listorna med unik personnummer
imgGalleryLarge.Images.Add(student.PersonNumberStudents, thumbLarge);
imgGallerySmall.Images.Add(student.PersonNumberStudents, thumbSmall);
ListViewItem lvi = new ListViewItem(student.LastnameStudents + " " +
student.FirstnameStudents);
lvi.SubItems.Add(student.PhoneStudents);
lvi.SubItems.Add(student.EmailStudents);
lsvImageGallery.Items.Add(lvi);
}
}
private Bitmap GetThumb(Image image, int maxSize)
{
int tWidth, tHeight, tExtraX, tExtraY;
int width = image.Width;
int height = image.Height;
double whRatio = (double)width / height;
if (image.Width >= image.Height)
{
tWidth = maxSize;
tHeight = (int)(tWidth / whRatio);
}
else
{
tHeight = maxSize;
tWidth = (int)(tHeight * whRatio);
}
tExtraX = (maxSize - tWidth) / 2;
tExtraY = (maxSize - tHeight) / 2;
Bitmap imgthumb = new Bitmap(maxSize, maxSize, PixelFormat.Format24bppRgb);
Graphics imggraphics = Graphics.FromImage(imgthumb);
imggraphics.Clear(Color.White);
imggraphics.InterpolationMode = InterpolationMode.NearestNeighbor;
imggraphics.DrawImage(image, new Rectangle(tExtraX, tExtraY, tWidth, tHeight), new Rectangle(0, 0, width, height), GraphicsUnit.Pixel);
return imgthumb;
}
Try this:
You have to set the
ImageIndex
for eachListViewItem
, the constructor forListViewItem
used above is: