public static ViewerConfig LoadFromModels(ModelsEx models, Components c) { var res = new ViewerConfig(); if (c.HasFlag(Components.Images)) { res.Images = ImagesConfig.LoadFromModels(models); } if (c.HasFlag(Components.Equations)) { res.Equation = EquationConfig.LoadFromModels(models); } if (c.HasFlag(Components.Filter)) { res.Filter = FilterConfig.LoadFromModels(models); } if (c.HasFlag(Components.Display)) { res.Display = DisplayConfig.LoadFromModels(models); } if (c.HasFlag(Components.Export)) { res.Export = ExportConfig.LoadFromModels(models); } return(res); }
public static ImagesConfig LoadFromModels(ModelsEx models) { var res = new ImagesConfig(); res.NumLayers = models.Images.NumLayers; res.NumMipmaps = models.Images.NumMipmaps; res.Width = models.Images.Size.Width; res.Height = models.Images.Size.Height; res.Depth = models.Images.Size.Depth; foreach (var img in models.Images.Images) { if (img.IsFile) { res.Images.Add(new ImageData { Filename = img.Filename, Data = null, Alias = img.Alias }); } else { var fmt = new ImageFormat(img.Image.Format); // fill byte array var bytes = img.Image.GetBytes(fmt.PixelSize); bytes = Compression.Compress(bytes, CompressionLevel.Fastest); var base64 = System.Convert.ToBase64String(bytes); res.Images.Add(new ImageData { Filename = img.Filename, Data = base64, Alias = img.Alias, Format = fmt.GliFormat }); } } return(res); }
public static ImagesConfig LoadFromModels(ModelsEx models) { var res = new ImagesConfig(); res.NumLayers = models.Images.NumLayers; res.NumMipmaps = models.Images.NumMipmaps; res.Width = models.Images.Size.Width; res.Height = models.Images.Size.Height; res.Depth = models.Images.Size.Depth; foreach (var img in models.Images.Images) { if (img.IsFile) { res.Images.Add(new ImageData { DataIsFilename = true, Data = img.Filename, Alias = img.Alias }); } else { Debug.Assert(img.Image.Format == Format.R32G32B32A32_Float); // fill byte array var bytes = img.Image.GetBytes(4u * 4u); bytes = Compression.Compress(bytes, CompressionLevel.Fastest); var base64 = System.Convert.ToBase64String(bytes); res.Images.Add(new ImageData { DataIsFilename = false, Data = base64, Alias = img.Alias }); } } return(res); }