private void WriteFreeListBMPFile() { // write freelist to end of blocks and update master block if (_freeList != null) { _freeList.Optimize(); var o = _freeList.Serialize(); var b = fastBinaryJSON.BJSON.ToBJSON(o, new fastBinaryJSON.BJSONParameters { UseExtensions = false }); var len = b.Length; var offset = 0; // write master block SeekBlock(0); _lastBlockNumber++; WriteBlockBytes(new byte[] { (byte)'F', (byte)'L' }, 0, 2); WriteBlockBytes(Helper.GetBytes(_lastBlockNumber, false), 0, 4); WriteBlockBytes(Helper.GetBytes(len, false), 0, 4); // seek to end of file SeekBlock(_lastBlockNumber); while (len > 0) { WriteBlockBytes(new byte[] { (byte)'F', (byte)'L' }, 0, 2); WriteBlockBytes(b, offset, len > _BLOCKSIZE ? _BLOCKSIZE - 2 : len); len -= (_BLOCKSIZE - 2); } } }
private long SaveBitmapToFile(MGRB bmp) { long off = _lastBitmapOffset; var dat = bmp.Serialize(); var hdr = new byte[_hdrlen]; var b = fastBinaryJSON.BJSON.ToBJSON(dat, new fastBinaryJSON.BJSONParameters { UseExtensions = false }); hdr[0] = (byte)'b'; hdr[1] = (byte)'m'; hdr[2] = 0; // uncompressed if (Global.CompressBitmapBytes) { hdr[2] = 1; b = MiniLZO.Compress(b); } var s = Helper.GetBytes(b.Length, false); Buffer.BlockCopy(s, 0, hdr, 3, 4); _bitmapFileWrite.Write(hdr, 0, hdr.Length); _lastBitmapOffset += hdr.Length; _bitmapFileWrite.Write(b, 0, b.Length); _lastBitmapOffset += b.Length; return(off); }
private void WriteFile() { lock (_lock) { _bits.Optimize(); var o = _bits.Serialize(); var b = fastBinaryJSON.BJSON.ToBJSON(o, new fastBinaryJSON.BJSONParameters { UseExtensions = false }); File.WriteAllBytes(_path + _filename, b); } }