private Bitmap InternalLoadBitmap(Frame frame) { var imgFile = Path.Combine(_Path, _File.Images[frame.SpriteID]); AbstractImage img = null; Bitmap ret; try { if (Path.GetExtension(imgFile) == ".dds") { if (File.Exists(imgFile)) { img = new DDSImage(imgFile); } } else if (Path.GetExtension(imgFile) == ".bmp" || Path.GetExtension(imgFile) == ".cv2" || Path.GetExtension(imgFile) == ".png") { var imgFileCV2 = Path.ChangeExtension(imgFile, ".cv2"); if (File.Exists(imgFileCV2)) { img = new CV2Image(imgFileCV2); } } if (img == null) { return(null); } var rect = new Rectangle(frame.ViewOffsetX, frame.ViewOffsetY, frame.ViewWidth, frame.ViewHeight); ret = img.ToBitmap(_Palette, rect); } finally { if (img != null) { try { img.Dispose(); } catch { } } } if (frame.ImageManipulation != null && frame.ImageManipulation.AlphaBlend != 0) { AbstractImage.MakeAlphaBlendBitmap(ret); } return(ret); }
private AbstractImage LoadResource(string res) { AbstractImage ret; if (cachedResource.TryGetValue(res, out ret)) { return(ret); } if (Path.GetExtension(res) == ".dds") { ret = new DDSImage(res); } else if (Path.GetExtension(res) == ".cv2") { ret = new CV2Image(res); } //add it even if it's null (avoid keep trying) cachedResource.Add(res, ret); return(ret); }