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(); }
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(); }
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); }