←Select platform

LoadThumbnails(IEnumerable<String>,String,RasterThumbnailBrowserLoadFlags) Method

Summary

Browses the specified paths for supported images, and generates thumbnails for each image file that is found.

Syntax

C#
VB
C++
public void LoadThumbnails(  
   IEnumerable<string> paths, 
   string searchPattern, 
   Leadtools.Winforms.RasterThumbnailBrowserLoadFlags flags 
) 
Public Overloads Sub LoadThumbnails( _ 
   ByVal paths As IEnumerable(Of String), _ 
   ByVal searchPattern As String, _ 
   ByVal flags As Leadtools.Winforms.RasterThumbnailBrowserLoadFlags _ 
) 
public: 
void LoadThumbnails(  
   IEnumerable<String^>^ paths, 
   String^ searchPattern, 
   Leadtools.Winforms.RasterThumbnailBrowserLoadFlags flags 
) 

Parameters

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.
Remarks

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:

Example

This example will load two files and expands the multipage one.

C#
VB
Imports Leadtools.WinForms 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Drawing 
 
Private Class MyForm2 : Inherits Form 
   Public theBrowser As RasterThumbnailBrowser 
   Public cancelOperation As Boolean ' Informs us if the user canceled the operation 
   Public buttonCancel As Button ' Cancel browse loading 
   Public buttonBrowse As Button ' Diplays the browse control 
   Public progressBar As ProgressBar ' shows progress of loading browse images 
   Private Sub buttonBrowse_Click(ByVal sender As Object, ByVal e As EventArgs) 
      ' If we are already loading thumbails, cancel 
      ' this operation 
      If theBrowser.IsLoadingThumbnails Then 
         theBrowser.CancelLoadingThumbnails() 
      End If 
 
      ' Clean all the items 
      theBrowser.Items.Clear() 
 
      ' Update the application state 
      buttonCancel.Enabled = True 
      progressBar.Value = 0 
 
      ' And load the new thumbnails 
      cancelOperation = False 
 
      Dim folderPath As String = LEAD_VARS.ImagesDir 
      Dim files As String() = New String(1) {Path.Combine(folderPath, "\image1.jpx"), folderPath} 
      theBrowser.LoadThumbnails(files, "*.jpg", RasterThumbnailBrowserLoadFlags.Block Or RasterThumbnailBrowserLoadFlags.ExpandMultiPageFile) 
   End Sub 
 
   Private Sub thumbnailBrowser_LoadThumbnail(ByVal sender As Object, ByVal e As RasterThumbnailBrowserLoadThumbnailEventArgs) 
      ' If this is the first iteration, update the progress bar minimum and maximum values 
      If e.Index = 0 Then 
         progressBar.Minimum = 0 
         progressBar.Maximum = e.Total - 1 
      End If 
 
      ' Update where we are in the loading operation 
      progressBar.Value = e.Index 
 
      ' Check if we need to cancel (due to the user clicking the Cancel button) 
      If cancelOperation Then 
         e.Cancel = True 
      End If 
   End Sub 
 
   Private Sub thumbnailBrowser_AddFile(ByVal sender As Object, ByVal e As RasterThumbnailBrowserAddFileEventArgs) 
      Console.WriteLine("AddFile: {0}    Add: {1} Total Pages: {2} Page:{3}", e.FileName, e.Add, e.TotalPages, e.Page) 
   End Sub 
 
   Private Sub thumbnailBrowser_FinishedLoadingThumbnails(ByVal sender As Object, ByVal e As EventArgs) 
      buttonCancel.Enabled = False 
   End Sub 
 
   Private Sub buttonCancel_Click(ByVal sender As Object, ByVal e As EventArgs) 
      ' The user has clicked the cancel button 
      Me.cancelOperation = True 
   End Sub 
 
   ' Create  custom images to use as the "error" and "loading" thumbnails. 
   Private Sub CreateErrorThumbnail() 
      ' Get the image size 
      Dim imageSize As Size = theBrowser.ItemImageSize 
 
      ' No "loading" thumbnail 
      theBrowser.LoadingThumbnail = Nothing 
 
      ' For the "error" thumbnail, create a red X image 
      Dim palette As RasterColor() = New RasterColor() {} 
      Dim image As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, imageSize.Width, imageSize.Height, 24, RasterByteOrder.Bgr, _ 
                                                 RasterViewPerspective.TopLeft, palette, IntPtr.Zero, 0) 
 
      Dim hdc As IntPtr = RasterImagePainter.CreateLeadDC(image) 
      Dim g As Graphics = 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 transparent 
      image.Transparent = True 
      image.TransparentColor = RasterColor.FromKnownColor(RasterKnownColor.Magenta) 
 
      theBrowser.ErrorThumbnail = image 
   End Sub 
 
   Public Sub Cleanup() 
      RemoveHandler buttonBrowse.Click, AddressOf buttonBrowse_Click 
      RemoveHandler buttonCancel.Click, AddressOf buttonCancel_Click 
      RemoveHandler theBrowser.LoadThumbnail, AddressOf thumbnailBrowser_LoadThumbnail 
      RemoveHandler theBrowser.FinishedLoadingThumbnails, AddressOf thumbnailBrowser_FinishedLoadingThumbnails 
   End Sub 
 
   Public Sub New() 
      Size = New Size(300, 200) 
 
      ' create the browser 
      theBrowser = New RasterThumbnailBrowser() 
      theBrowser.Codecs = New RasterCodecs() 
      theBrowser.Dock = DockStyle.Fill 
      theBrowser.ItemSpacingSize = New Size(10, 10) 
      theBrowser.ThumbnailSizeFlags = RasterSizeFlags.Bicubic 
      AddHandler theBrowser.LoadThumbnail, AddressOf thumbnailBrowser_LoadThumbnail 
      AddHandler theBrowser.FinishedLoadingThumbnails, AddressOf thumbnailBrowser_FinishedLoadingThumbnails 
      AddHandler theBrowser.AddFile, AddressOf thumbnailBrowser_AddFile 
 
      ' Create a thumbnail image to be displayed on error 
      CreateErrorThumbnail() 
 
      ' add a panel 
      Dim panel As Panel = New Panel() 
      panel.Dock = DockStyle.Left 
      panel.Width = 100 
      Controls.Add(panel) 
      panel.BringToFront() 
 
      ' add a "browse" button 
      buttonBrowse = New Button() 
      buttonBrowse.Text = "Browse" 
      buttonBrowse.Dock = DockStyle.Top 
      panel.Controls.Add(buttonBrowse) 
      AddHandler buttonBrowse.Click, AddressOf buttonBrowse_Click 
 
      ' add a "cancel" button 
      buttonCancel = New Button() 
      buttonCancel.Text = "Cancel" 
      buttonBrowse.Dock = DockStyle.Bottom 
      panel.Controls.Add(buttonCancel) 
      AddHandler buttonCancel.Click, AddressOf buttonCancel_Click 
 
      ' add a progress bar 
      progressBar = New ProgressBar() 
      progressBar.Dock = DockStyle.Bottom 
      Controls.Add(progressBar) 
 
      Controls.Add(theBrowser) 
      theBrowser.BringToFront() 
   End Sub 
 
   Private Sub InitializeComponent() 
      Me.SuspendLayout() 
      '  
      ' MyForm 
      '  
      Me.ClientSize = New System.Drawing.Size(315, 273) 
      Me.Name = "MyForm" 
      Me.ResumeLayout(False) 
 
   End Sub 
End Class 
Public Sub RasterThumbnailBrowser_RasterThumbnailBrowser() 
   Dim form As MyForm = New MyForm() 
   form.ShowDialog() 
   form.Cleanup() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
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 operation 
   public Button buttonCancel;         // Cancel browse loading 
   public Button buttonBrowse;         // Diplays the browse control 
   public ProgressBar progressBar;     // shows progress of loading browse images 
   void buttonBrowse_Click(object sender, EventArgs e) 
   { 
      // If we are already loading thumbails, cancel 
      // this operation 
      if (theBrowser.IsLoadingThumbnails) 
         theBrowser.CancelLoadingThumbnails(); 
 
      // Clean all the items 
      theBrowser.Items.Clear(); 
 
      // Update the application state 
      buttonCancel.Enabled = true; 
      progressBar.Value = 0; 
 
      // And load the new thumbnails 
      cancelOperation = 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 values 
      if (e.Index == 0) 
      { 
         progressBar.Minimum = 0; 
         progressBar.Maximum = e.Total - 1; 
      } 
 
      // Update where we are in the loading operation 
      progressBar.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 button 
      this.cancelOperation = true; 
   } 
 
   // Create  custom images to use as the "error" and "loading" thumbnails. 
   void CreateErrorThumbnail() 
   { 
      // Get the image size 
      Size imageSize = theBrowser.ItemImageSize; 
 
      // No "loading" thumbnail 
      theBrowser.LoadingThumbnail = null; 
 
      // For the "error" thumbnail, create a red X image 
      RasterColor[] 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 transparent 
      image.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 browser 
      theBrowser = 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 error 
      CreateErrorThumbnail(); 
 
      // add a panel 
      Panel panel = new Panel(); 
      panel.Dock = DockStyle.Left; 
      panel.Width = 100; 
      Controls.Add(panel); 
      panel.BringToFront(); 
 
      // add a "browse" button 
      buttonBrowse = new Button(); 
      buttonBrowse.Text = "Browse"; 
      buttonBrowse.Dock = DockStyle.Top; 
      panel.Controls.Add(buttonBrowse); 
      buttonBrowse.Click += new EventHandler(buttonBrowse_Click); 
 
      // add a "cancel" button 
      buttonCancel = new Button(); 
      buttonCancel.Text = "Cancel"; 
      buttonBrowse.Dock = DockStyle.Bottom; 
      panel.Controls.Add(buttonCancel); 
      buttonCancel.Click += new EventHandler(buttonCancel_Click); 
 
      // add a progress bar 
      progressBar = 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:\Users\Public\Documents\LEADTOOLS Images"; 
} 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.WinForms Assembly
Click or drag to resize