private void ShowGridLayerImage(string filename) { var layer = new GridLayer(filename); var image = filename = LayerImageGenerator.GenerateTemporaryImageFile(layer, "layer_", _richnessOptions.LowColor, _richnessOptions.HighColor, _richnessOptions.NoValueColor, 0, 255); SystemUtils.ShellExecute(image); }
private void ShowGridLayerInMap(GridLayer grid, int intervals, double cutoff, IGridLayerBitmapOptions options, string filename = null) { this.InvokeIfRequired(() => { var prefix = grid.Name; FileInfo f = new FileInfo(grid.Name); if (f.Exists) { prefix = f.Name.Substring(0, f.Name.LastIndexOf(".")); } var map = PluginManager.Instance.GetMap(); if (filename == null) { filename = LayerImageGenerator.GenerateTemporaryImageFile(grid, prefix, options.LowColor, options.HighColor, options.NoValueColor, cutoff, intervals); } else { map.RemoveRasterLayer(filename); LayerImageGenerator.CreateImageFileFromGrid(grid, filename, options.LowColor, options.HighColor, options.NoValueColor, cutoff, intervals); } map.Show(); map.AddRasterLayer(filename); }); }
public static string GenerateTemporaryImageFile(GridLayer layer, string filenamePrefix, Color lowcolor, Color highcolor, Color novaluecolor, double cutoff = 0, int intervals = 256) { var filename = TempFileManager.NewTempFilename("bmp", filenamePrefix); CreateImageFileFromGrid(layer, filename, lowcolor, highcolor, novaluecolor, cutoff, intervals); var image = LayerImageGenerator.GetImageForLayer(layer, lowcolor, highcolor, novaluecolor, cutoff, intervals); TempFileManager.Attach(filename + "w"); return(filename); }
public static void CreateImageFileFromGrid(GridLayer layer, string filename, Color lowcolor, Color highcolor, Color novaluecolor, double cutoff = 0, int intervals = 256) { var image = LayerImageGenerator.GetImageForLayer(layer, lowcolor, highcolor, novaluecolor, cutoff, intervals); BitmapEncoder encoder = new BmpBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(image)); if (File.Exists(filename)) { try { File.Delete(filename); } catch (Exception) { // ignore } } using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write)) { encoder.Save(fs); } var worldFilename = filename + "w"; CreateWorldFile(layer, worldFilename); }