示例#1
0
        private async void LoadSourceImagesToContainer()
        {
            //disable controls that can start this method or image processing and saving
            buttonLoadSourceImages.IsEnabled = false;
            buttonSave.IsEnabled             = false;

            labelMessage.Content = (string)Application.Current.FindResource("loadingImagesMessage");

            //start progress bar animation
            progressBar.Maximum         = 100;
            progressBar.IsIndeterminate = true;

            //reset listbox and image source
            listBoxPreview.Resources["previewImages"] = null;
            images = null;
            renderPreviewImage();

            images = new BitmapImageCollectionForXaml();
            images = await Imaging.GetImages(textBoxSourcePath.Text, checkBoxUseSubdirectories.IsChecked.GetValueOrDefault());

            listBoxPreview.Resources["previewImages"] = images;

            labelMessage.Content = images.Count.ToString() + " " + (string)Application.Current.FindResource("loadedImagesQuantityMessage");

            //enable controls
            buttonLoadSourceImages.IsEnabled = true;
            buttonSave.IsEnabled             = true;

            renderPreviewImage();

            //reset progress bar animation
            progressBar.IsIndeterminate = false;
        }
示例#2
0
文件: Imaging.cs 项目: zd333/biw
        public static async Task <BitmapImageCollectionForXaml> GetImages(string directoryPath, bool useSubDirectories)
        {
            BitmapImageCollectionForXaml images = new BitmapImageCollectionForXaml();

            if (Directory.Exists(directoryPath))
            {
                await Task.Run(() => ProcessDirectory(ref images, directoryPath, directoryPath, useSubDirectories));
            }
            return(images);
        }
示例#3
0
文件: Imaging.cs 项目: zd333/biw
 private static void ProcessDirectory(ref BitmapImageCollectionForXaml images, string directoryPath, string baseDirectoryPath, bool useSubDirectories)
 //separate method to use recurse
 {
     string[] fileEntries = Directory.GetFiles(directoryPath);
     foreach (string fileName in fileEntries)
     {
         ProcessFile(ref images, fileName, baseDirectoryPath);
     }
     if (useSubDirectories)
     {
         // recurse into subdirectories
         string[] subdirectoryEntries = Directory.GetDirectories(directoryPath);
         foreach (string subdirectory in subdirectoryEntries)
         {
             ProcessDirectory(ref images, subdirectory, baseDirectoryPath, useSubDirectories);
         }
     }
 }
示例#4
0
文件: Imaging.cs 项目: zd333/biw
        private static void ProcessFile(ref BitmapImageCollectionForXaml images, string filePath, string baseDirectoryPath)
        {
            try
            {
                string         ext = Path.GetExtension(filePath).ToLower();
                ImageFiletypes ft;

                switch (ext)
                {
                case ".jpg":
                case ".jpeg":
                    ft = ImageFiletypes.jpg;
                    break;

                case ".png":
                    ft = ImageFiletypes.png;
                    break;

                case ".bmp":
                    ft = ImageFiletypes.bmp;
                    break;

                default:
                    return;
                }

                string fnwe = Path.GetFileNameWithoutExtension(filePath);
                string s    = Path.GetDirectoryName(filePath);
                string rp   = s.Remove(s.IndexOf(baseDirectoryPath), baseDirectoryPath.Length);

                images.Add(new ImageFromFile(filePath, rp, fnwe, ft));
            }
            catch (Exception)
            {
            }
        }