01/10/2018, 17:21

Hiển thị ảnh ở dạng thumbnail trong C#

Ví dụ bên dưới gồm các bước minh họa cụ thể cách hiển thị các ảnh ở dạng thumbnail. Ở ví dụ này chúng ta sử dụng 4 tấm ảnh hiển thị dạng thumbnail trên 1 ListView, và kích thước mỗi tấm ảnh được hiển thị trên ListView là 100×100 pixel. Các bước cụ thể như sau: Bước 1 : thiết lập ...

Ví dụ bên dưới gồm các bước minh họa cụ thể cách hiển thị các ảnh ở dạng thumbnail.
Ở ví dụ này chúng ta sử dụng 4 tấm ảnh hiển thị dạng thumbnail trên 1 ListView, và kích thước mỗi tấm ảnh được hiển thị trên ListView là 100×100 pixel.

Các bước cụ thể như sau:

  • Bước 1: thiết lập kích thước hiển thị cho ảnh

Chương trình sẽ tự động thay đổi kích thước 4 tấm ảnh về 100×100 pixel

int awidth = 100;
int height = 100;

Chú ý: chiều rộng tối đa là 256 pixel, nếu thiết lập lớn hơn 256 pixel thì sẽ bị lỗi

  • Bước 2: dùng đối tượng ImageList để chứa 4 tấm ảnh được đọc về

– Lần lược đọc 4 tấm ảnh và đổi kích thước về kích thước đã qui định ở bước 1, rồi sau đó gán vào ImageList.
– Sau đó dùng một mãng để chứa tên 4 tấm ảnh vừa đọc về

ImageList imgList = new ImageList();
imgList.ImageSize = new Size(awidth, height);

//
Image image1 = Image.FromFile(@"D:ImagesAvatars3-chang-ngu-lam.jpg");
Image imageThumbnail1 = image1.GetThumbnailImage(awidth, height, null, new IntPtr());
imgList.Images.Add(imageThumbnail1);

//
Image image2 = Image.FromFile(@"D:ImagesAvatarsPhanThiet.jpg");
Image imageThumbnail2 = image2.GetThumbnailImage(awidth, height, null, new IntPtr());
imgList.Images.Add(imageThumbnail2);

//
Image image3 = Image.FromFile(@"D:ImagesAvatarsPhanThiet-1.jpg");
Image imageThumbnail3 = image3.GetThumbnailImage(awidth, height, null, new IntPtr());
imgList.Images.Add(imageThumbnail3);

//
Image image4 = Image.FromFile(@"D:ImagesAvatarsPhanThiet-2.jpg");
Image imageThumbnail4 = image4.GetThumbnailImage(awidth, height, null, new IntPtr());
imgList.Images.Add(imageThumbnail4);

// Tên của từng bức ảnh
string[] imageNames = { "Suối hồng", "Phan Thiết", "Hòn rơm", "Titanic" };
  • Bước 3: đưa 4 tấm ảnh trong ImageList vào ListView để hiển thị

– Dùng thuộc tính LargeImageList để đưa danh dách hình ảnh ImageList vào ListView
– Lần lược thiết lập thông tin cho từng ảnh, sau đó đưa vào ListView

listViewImage.LargeImageList = imgList;
for (int i = 0; i < imgList.Images.Count; i++)
{
   ListViewItem item = new ListViewItem();
   item.ImageIndex = i;
   item.Text = imageNames[i];
   item.ToolTipText = imageNames[i];
   listViewImage.Items.Add(item);
}

Dưới đây là đoạn code hoàn chỉnh:

using System;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MyProject
{
   public partial class FrmViewThumbnailImage : Form
   {
      public FrmViewThumbnailImage()
      {
         InitializeComponent();
      }

      private void FrmViewThumbnailImage_Load(object sender, EventArgs e)
      {
         // Bước 1
         int awidth = 100;
         int height = 100;

         // Bước 2
         ImageList imgList = new ImageList();
         imgList.ImageSize = new Size(awidth, height);

         //
         Image image1 = Image.FromFile(@"D:ImagesAvatars3-chang-ngu-lam.jpg");
         Image imageThumbnail1 = image1.GetThumbnailImage(awidth, height, null, new IntPtr());
         imgList.Images.Add(imageThumbnail1);

         //
         Image image2 = Image.FromFile(@"D:ImagesAvatarsPhanThiet.jpg");
         Image imageThumbnail2 = image2.GetThumbnailImage(awidth, height, null, new IntPtr());
         imgList.Images.Add(imageThumbnail2);

         //
         Image image3 = Image.FromFile(@"D:ImagesAvatarsPhanThiet-1.jpg");
         Image imageThumbnail3 = image3.GetThumbnailImage(awidth, height, null, new IntPtr());
         imgList.Images.Add(imageThumbnail3);

         //
         Image image4 = Image.FromFile(@"D:ImagesAvatarsPhanThiet-2.jpg");
         Image imageThumbnail4 = image4.GetThumbnailImage(awidth, height, null, new IntPtr());
         imgList.Images.Add(imageThumbnail4);

         // Tên của từng bức ảnh
         string[] imageNames = { "Suối hồng", "Phan Thiết", "Hòn rơm", "Titanic" };

         // Bước 3
         listViewImage.LargeImageList = imgList;
         for (int i = 0; i < imgList.Images.Count; i++)
         {
            ListViewItem item = new ListViewItem();
            item.ImageIndex = i;
            item.Text = imageNames[i];
            item.ToolTipText = imageNames[i];
            listViewImage.Items.Add(item);
         }
      }
   }
}

Khi bạn chạy chương trình được kết quả như sau:

Chúc các bạn thành công! :roll:


0