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";
}