public Image GetCachedImage(int index) { if (Images != null && index >= 0 && index <= Images.Length) { if (Images[index] == null) { wilFileStream.Position = WilIndex[index]; Images[index] = new WILImage(); } if (Images[index].Image == null) { LoadWilImage(index); Images[index].ImageTime = Environment.TickCount; return(Images[index].Image); } else { Images[index].ImageTime = Environment.TickCount; return(Images[index].Image); } } return(null); }
public WilLibrary(string wilFilePath) { WilFilePath = wilFilePath; WixFilePath = Path.ChangeExtension(wilFilePath, ".wix"); MemoryCheckTime = Environment.TickCount; try { if (File.Exists(WilFilePath) && File.Exists(WixFilePath)) { var wilImageInfo = new WILImage(); wilFileStream = new FileStream(WilFilePath, FileMode.Open, FileAccess.Read); wilBinaryReader = new BinaryReader(wilFileStream); LoadWilHeader(); LoadIndexFile(wilFilePath); Images = new WILImage[WilIndex.Count]; } } catch (Exception ex) { var msg = ex.Message; } }
public Image GetCachedImage(int index, ref int posx, ref int posy) { if (Images != null && index >= 0 && index <= Images.Length) { if (Environment.TickCount - MemoryCheckTime > 10000) { MemoryCheckTime = Environment.TickCount; FreeOldImageMemory(); } if (Images[index] == null) { wilFileStream.Position = WilIndex[index]; Images[index] = new WILImage(); } if (Images[index].Image == null) { LoadWilImage(index); posx = Images[index].PlacementX; posy = Images[index].PlacementY; Images[index].ImageTime = Environment.TickCount; return(Images[index].Image); } else { posx = Images[index].PlacementX; posy = Images[index].PlacementY; Images[index].ImageTime = Environment.TickCount; return(Images[index].Image); } } return(null); }
public void LoadWilImage(int imageIndex) { try { wilFileStream.Position = WilIndex[imageIndex]; var newWilImage = new WILImage(); newWilImage.Width = wilBinaryReader.ReadInt16(); newWilImage.Height = wilBinaryReader.ReadInt16(); newWilImage.PlacementX = wilBinaryReader.ReadInt16(); newWilImage.PlacementY = wilBinaryReader.ReadInt16(); if (newWilImage.Width == 4 && newWilImage.Height == 1) { return; } newWilImage.Size = newWilImage.Width * newWilImage.Height; var dno = wilBinaryReader.ReadInt16(); var dno2 = wilBinaryReader.ReadInt16(); newWilImage.Size = wilBinaryReader.ReadInt32(); var compressedImageStream = new MemoryStream(newWilImage.Size); var decompressedImageStream = DecompressImageStream(compressedImageStream); newWilImage.ImageTime = Environment.TickCount; newWilImage.CreateTexture(wilBinaryReader); Images[imageIndex] = newWilImage; } catch (Exception ex) { var msg = ex.Message; } }