Beispiel #1
0
        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);
        }
Beispiel #3
0
        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);
        }