private void ReadFreeListBMPFile(string filename) { byte[] b = File.ReadAllBytes(filename); WAHBitArray.TYPE t = WAHBitArray.TYPE.WAH; int j = 0; if (b.Length % 4 > 0) // new format with the data type byte { t = (WAHBitArray.TYPE)Enum.ToObject(typeof(WAHBitArray.TYPE), b[0]); j = 1; } List <uint> ints = new List <uint>(); for (int i = 0; i < b.Length / 4; i++) { ints.Add((uint)Helper.ToInt32(b, (i * 4) + j)); } _freeList = new WAHBitArray(t, ints.ToArray()); }
private void ReadFile() { byte[] b = File.ReadAllBytes(_path + _filename); MemoryStream ms = new MemoryStream(b); BinaryReader br = new BinaryReader(ms); WAHBitArray.TYPE t = WAHBitArray.TYPE.WAH; if (b.Length % 4 > 0) // new format with the data type byte { byte tb = br.ReadByte(); t = (WAHBitArray.TYPE)Enum.ToObject(typeof(WAHBitArray.TYPE), tb); } List <uint> ints = new List <uint>(); for (int i = 0; i < b.Length / 4; i++) { ints.Add((uint)br.ReadInt32()); } _bits = new WAHBitArray(t, ints.ToArray()); }
private WAHBitArray LoadBitmap(long offset) { WAHBitArray bc = new WAHBitArray(); if (offset == -1) { return(bc); } List <uint> ar = new List <uint>(); WAHBitArray.TYPE type = WAHBitArray.TYPE.WAH; FileStream bmp = _bitmapFileRead; { bmp.Seek(offset, SeekOrigin.Begin); byte[] b = new byte[8]; bmp.Read(b, 0, 8); if (b[0] == (byte)'B' && b[1] == (byte)'M' && b[7] == 0) { type = (WAHBitArray.TYPE)Enum.ToObject(typeof(WAHBitArray.TYPE), b[6]); int c = Helper.ToInt32(b, 2); byte[] buf = new byte[c * 4]; bmp.Read(buf, 0, c * 4); for (int i = 0; i < c; i++) { ar.Add((uint)Helper.ToInt32(buf, i * 4)); } } } bc = new WAHBitArray(type, ar.ToArray()); return(bc); }