public DisplayViewModel(string name, string dziUrl, double mpp, DeepZoomGenerator generator) { Name = name; SlideDziUrl = dziUrl; SlideMpp = mpp; DeepZoomGenerator = generator; }
public static void Run(FileInfo input, FileInfo output, int tileSize, int overlap) { var dziFile = new FileInfo(output.FullName + ".dzi"); var dziDirectory = new DirectoryInfo(output.FullName + "_files"); if (dziFile.Exists) { Console.WriteLine($"Error: File {dziFile.FullName} already exists."); return; } if (dziDirectory.Exists) { Console.WriteLine($"Error: Directory {dziDirectory} already exists."); return; } if (tileSize <= 0) { Console.WriteLine("Error: Tile size is invalid."); return; } if (overlap < 0) { Console.WriteLine("Error: Overlap is invalid."); return; } dziDirectory.Create(); using var image = OpenSlideImage.Open(input.FullName); var dz = new DeepZoomGenerator(image, tileSize, overlap); Console.WriteLine("Writing: " + dziFile.FullName); File.WriteAllText(dziFile.FullName, dz.GetDzi("jpg")); int currentCount = 0; int totalCount = dz.TileCount; var levelDimensions = dz.LevelDimensions.ToArray(); for (int level = dz.LevelCount - 1; level >= 0; level--) { DirectoryInfo levelDirectory = dziDirectory.CreateSubdirectory(level.ToString(CultureInfo.InvariantCulture)); long width = levelDimensions[level].Width; long height = levelDimensions[level].Height; int colCount = (int)((width + tileSize - 1) / tileSize); int rowCount = (int)((height + tileSize - 1) / tileSize); for (int row = 0; row < rowCount; row++) { for (int col = 0; col < colCount; col++) { string path = Path.Combine(levelDirectory.FullName, $"{col}_{row}.jpg"); Console.WriteLine("Writing: " + path + $" [{++currentCount}/{totalCount}]"); using var fs = new FileStream(path, FileMode.Create, FileAccess.Write); dz.GetTileAsJpegToStream(level, col, row, fs); } } } }
public DisplayViewModel(string name, string dziUrl, double mpp, AbstractSlide osr) { Name = name; SlideDziUrl = dziUrl; SlideMpp = mpp; DeepZoomGenerator = new DeepZoomGenerator(osr); }
public ImageProvider(IOptions <ImageOption> options) { var path = options.Value.Path; _image = OpenSlideImage.Open(path); _generator = new DeepZoomGenerator(_image, tileSize: 254, overlap: 1); }
public void TestMetadata() { string currentDir = Directory.GetCurrentDirectory(); using (var osr = OpenSlideImage.Open(Path.Combine(currentDir, "Assets", "boxes.tiff"))) { var dz = new DeepZoomGenerator(osr, 254, 1); Assert.Equal(10, dz.LevelCount); Assert.Equal(11, dz.TileCount); Assert.Equal(new(int, int)[] { (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (2, 1) }, dz.LevelTiles);
public DeepZoomTiler(string fileName, string outDirectory = "out", string format = "jpeg", int quality = 75, int tileSize = 254, int overlap = 1, bool limitBounds = true) { this.fileName = fileName; fileNameWithoutExtension = FileName.GetFileNameWithoutExtension(fileName); this.outDirectory = outDirectory; this.format = format; this.quality = quality; this.tileSize = tileSize; this.overlap = overlap; this.limitBounds = limitBounds; osr = new OpenSlide(fileName); dz = new DeepZoomGenerator(osr, tileSize, overlap, limitBounds); pathBuilder = new StringBuilder(); processedTilesCount = 0; }
public void SetUp() { osr = new ImageSlide("tests/boxes.png"); dz = new DeepZoomGenerator(osr); }
public void SetUp() { osr = new OpenSlide("tests/boxes.tiff"); dz = new DeepZoomGenerator(osr); }