internal override void LoadImage(UIConfig.ImageSettings imageSettings, byte[] filedata) { config = imageSettings; mgGif.Decoder decoder = new mgGif.Decoder(filedata); var img = decoder.NextImage(); frameDelayMS = img.Delay; List <Texture2D> images = new List <Texture2D>(); while (img != null) { Texture2D newtexture = img.CreateTexture(config.Filter); newtexture.hideFlags = HideFlags.HideAndDontSave; newtexture.DontDestroyOnLoad(); images.Add(newtexture); img = decoder.NextImage(); } textures = images.ToArray(); MainTexture = textures[0]; AspectRatio = MainTexture.width / (float)MainTexture.height; AllElements.Add(this); }
internal static Objects.UI_Image LoadImage(UIConfig.ImageSettings imageSettings, string filename) { string filepath = ScanForFile(UIConfig.ThemePath, filename, new string[] { ".gif", ".png", ".jpg", ".jpeg" }); if (string.IsNullOrEmpty(filepath)) { return(null); } string fileext = Path.GetExtension(filepath).ToLowerInvariant(); if (fileext.Equals(".gif")) { return(new Objects.UI_AnimatedImage(imageSettings, filepath)); } if (fileext.Equals(".png") || fileext.Equals(".jpg") || fileext.Equals(".jpeg")) { return(new Objects.UI_Image(imageSettings, filepath)); } return(null); }
internal override void LoadImage(UIConfig.ImageSettings imageSettings, byte[] filedata) { config = imageSettings; mgGif.Decoder decoder = new mgGif.Decoder(filedata); var img = decoder.NextImage(); frameDelayMS = img.Delay; List <Texture2D> images = new List <Texture2D>(); while (img != null) { images.Add(img.CreateTexture(config.Filter)); img = decoder.NextImage(); } textures = images.ToArray(); MainTexture = textures[0]; AspectRatio = MainTexture.width / (float)MainTexture.height; }
internal UI_AnimatedImage(UIConfig.ImageSettings imageSettings, byte[] filedata) : base(imageSettings, filedata) { }
internal UI_AnimatedImage(UIConfig.ImageSettings imageSettings, string filepath) : base(imageSettings, filepath) { }
internal UI_Image(UIConfig.ImageSettings imageSettings, string filepath) => LoadImage(imageSettings, File.ReadAllBytes(filepath));