Example #1
0
        private void OpenFolder_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            var ofd = new CommonOpenFileDialog();

            ofd.IsFolderPicker = true;
            var result = ofd.ShowDialog();

            if (result != CommonFileDialogResult.Ok)
            {
                return;
            }
            string dir = ofd.FileName;

            Title = "YomiComi - " + dir;

            archive = null;
            pages   = new List <YomuPage>();

            var files = Directory.EnumerateFiles(dir);

            foreach (string file in files)
            {
                string filename = file; //.Substring(dir.Length + 1);
                var    page     = new YomuPage();
                page.FileName = filename;
                pages.Add(page);
            }
            PageCount       = pages.Count;
            currentFilename = dir;
            currentPage     = bookmarks.GetBookmarkedPage(currentFilename);

            LoadPages();
        }
Example #2
0
        private void OpenArchive_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            var  ofd    = new OpenFileDialog();
            bool?result = ofd.ShowDialog();

            if (result != true)
            {
                return;
            }
            string filename = ofd.FileName;

            Title = "YomiComi - " + filename;
            var stream = File.OpenRead(filename);

            archive = ArchiveFactory.Open(stream);
            pages   = new List <YomuPage>();

            foreach (var entry in archive.Entries.OrderBy(entry => entry.Key))
            {
                if (entry.IsDirectory)
                {
                    continue;
                }
                var ext = entry.Key.Substring(entry.Key.Length - 4);
                if (ext != ".jpg" && ext != ".png" && ext != ".bmp" && ext != ".gif") // Add more later?
                {
                    continue;
                }
                //pageEntries.Add(entry);
                var page = new YomuPage();
                page.FileName     = entry.Key;
                page.ArchiveEntry = entry;
                pages.Add(page);
            }

            PageCount = pages.Count;
            //PageSlider.Ticks
            currentFilename = filename;
            currentPage     = bookmarks.GetBookmarkedPage(currentFilename);
            LoadPages();
        }
Example #3
0
        private BitmapImage GetPageAsImage(YomuPage page)
        {
            Console.WriteLine(page.FileName);

            BitmapImage img;

            if (archive == null)
            {
                img = new BitmapImage(new Uri(page.FileName));
            }
            else
            {
                img = new BitmapImage();
                img.BeginInit();
                img.CacheOption = BitmapCacheOption.OnLoad;
                var entry = page.ArchiveEntry;
                img.StreamSource = new MemoryStream();
                entry.WriteTo(img.StreamSource);
                img.StreamSource.Position = 0;
                img.EndInit();
            }
            return(img);
        }