Browses the specified paths for supported images, and generates thumbnails for each image file that is found.
public void LoadThumbnails(IEnumerable<string> paths,string searchPattern,RasterThumbnailBrowserLoadFlags flags)
paths
The paths to browse. This can be a directories and files.
searchPattern
The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by System.IO.Path.DirectorySeparatorChar or System.IO.Path.AltDirectorySeparatorChar, nor can it contain any of the characters in System.IO.Path.InvalidPathChars.
flags
An RasterThumbnailBrowserLoadFlags enumeration that can be a combination of the following:
| Value | Description |
|---|---|
| RasterThumbnailBrowserLoadFlags.None | Default mode, the method will return immediatly and the thumbnails are loaded in a background thread. |
| RasterThumbnailBrowserLoadFlags.Block | The method will not return until all thumbnails are loaded. |
| RasterThumbnailBrowserLoadFlags.OnlyValidImageFiles | Only valid image files are loaded. Any file that contains data not recognized by the Codecs object as a valid image file will not be loaded. |
Use the LoadThumbnails(String,String,RasterThumbnailBrowserLoadFlags) method to populate the RasterThumbnailBrowser control with the thumbnails of image files found in the directory specified by path. The control will load the images in the following manner:
This example will load two files and expands the multipage one.
using Leadtools.WinForms;using Leadtools;using Leadtools.Codecs;using Leadtools.Drawing;class MyForm2 : Form{public RasterThumbnailBrowser theBrowser;public bool cancelOperation; // Informs us if the user canceled the operationpublic Button buttonCancel; // Cancel browse loadingpublic Button buttonBrowse; // Diplays the browse controlpublic ProgressBar progressBar; // shows progress of loading browse imagesvoid buttonBrowse_Click(object sender, EventArgs e){// If we are already loading thumbails, cancel// this operationif (theBrowser.IsLoadingThumbnails)theBrowser.CancelLoadingThumbnails();// Clean all the itemstheBrowser.Items.Clear();// Update the application statebuttonCancel.Enabled = true;progressBar.Value = 0;// And load the new thumbnailscancelOperation = false;string folderPath = LEAD_VARS.ImagesDir;string[] files = new string[2] { Path.Combine(folderPath, "\\image1.jpx"), folderPath };theBrowser.LoadThumbnails(files, "*.jpg", RasterThumbnailBrowserLoadFlags.Block | RasterThumbnailBrowserLoadFlags.ExpandMultiPageFile);}private void thumbnailBrowser_LoadThumbnail(object sender, RasterThumbnailBrowserLoadThumbnailEventArgs e){// If this is the first iteration, update the progress bar minimum and maximum valuesif (e.Index == 0){progressBar.Minimum = 0;progressBar.Maximum = e.Total - 1;}// Update where we are in the loading operationprogressBar.Value = e.Index;// Check if we need to cancel (due to the user clicking the Cancel button)if (cancelOperation)e.Cancel = true;}private void thumbnailBrowser_AddFile(object sender, RasterThumbnailBrowserAddFileEventArgs e){Console.WriteLine("AddFile: {0} Add: {1} Total Pages : {2} Page : {3}", e.FileName, e.Add, e.TotalPages, e.Page);}private void thumbnailBrowser_FinishedLoadingThumbnails(object sender, EventArgs e){buttonCancel.Enabled = false;}private void buttonCancel_Click(object sender, EventArgs e){// The user has clicked the cancel buttonthis.cancelOperation = true;}// Create custom images to use as the "error" and "loading" thumbnails.void CreateErrorThumbnail(){// Get the image sizeSize imageSize = theBrowser.ItemImageSize;// No "loading" thumbnailtheBrowser.LoadingThumbnail = null;// For the "error" thumbnail, create a red X imageRasterColor[] palette = new RasterColor[0];RasterImage image = new RasterImage(RasterMemoryFlags.Conventional,imageSize.Width,imageSize.Height,24,RasterByteOrder.Bgr,RasterViewPerspective.TopLeft,palette,IntPtr.Zero,0);IntPtr hdc = RasterImagePainter.CreateLeadDC(image);Graphics g = Graphics.FromHdc(hdc);g.FillRectangle(Brushes.Magenta, 0, 0, imageSize.Width, imageSize.Height);g.DrawLine(Pens.Red, 0, 0, imageSize.Width, imageSize.Height);g.DrawLine(Pens.Red, imageSize.Width, 0, 0, imageSize.Height);g.Dispose();RasterImagePainter.DeleteLeadDC(hdc);// Make this image transparentimage.Transparent = true;image.TransparentColor = RasterColor.FromKnownColor(RasterKnownColor.Magenta);theBrowser.ErrorThumbnail = image;}public void Cleanup(){buttonBrowse.Click -= new EventHandler(buttonBrowse_Click);buttonCancel.Click -= new EventHandler(buttonCancel_Click);theBrowser.LoadThumbnail -= new EventHandler<RasterThumbnailBrowserLoadThumbnailEventArgs>(thumbnailBrowser_LoadThumbnail);theBrowser.FinishedLoadingThumbnails -= new EventHandler(thumbnailBrowser_FinishedLoadingThumbnails);}public MyForm2(){Size = new Size(300, 200);// create the browsertheBrowser = new RasterThumbnailBrowser();theBrowser.Codecs = new RasterCodecs();theBrowser.Dock = DockStyle.Fill;theBrowser.ItemSpacingSize = new Size(10, 10);theBrowser.ThumbnailSizeFlags = RasterSizeFlags.Bicubic;theBrowser.LoadThumbnail += new EventHandler<RasterThumbnailBrowserLoadThumbnailEventArgs>(thumbnailBrowser_LoadThumbnail);theBrowser.FinishedLoadingThumbnails += new EventHandler(thumbnailBrowser_FinishedLoadingThumbnails);theBrowser.AddFile += new EventHandler<RasterThumbnailBrowserAddFileEventArgs>(thumbnailBrowser_AddFile);// Create a thumbnail image to be displayed on errorCreateErrorThumbnail();// add a panelPanel panel = new Panel();panel.Dock = DockStyle.Left;panel.Width = 100;Controls.Add(panel);panel.BringToFront();// add a "browse" buttonbuttonBrowse = new Button();buttonBrowse.Text = "Browse";buttonBrowse.Dock = DockStyle.Top;panel.Controls.Add(buttonBrowse);buttonBrowse.Click += new EventHandler(buttonBrowse_Click);// add a "cancel" buttonbuttonCancel = new Button();buttonCancel.Text = "Cancel";buttonBrowse.Dock = DockStyle.Bottom;panel.Controls.Add(buttonCancel);buttonCancel.Click += new EventHandler(buttonCancel_Click);// add a progress barprogressBar = new ProgressBar();progressBar.Dock = DockStyle.Bottom;Controls.Add(progressBar);Controls.Add(theBrowser);theBrowser.BringToFront();}private void InitializeComponent(){this.SuspendLayout();//// MyForm//this.ClientSize = new System.Drawing.Size(315, 273);this.Name = "MyForm";this.ResumeLayout(false);}}public void RasterThumbnailBrowser_LoadThumbnails2(){MyForm form = new MyForm();form.ShowDialog();form.Cleanup();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";}