/// <summary> /// Converts an FDAT Chunk to an IDAT Chunk. /// </summary> /// <returns>The IDAT chunk.</returns> public IDATChunk ToIDATChunk() { uint newCrc; using (var msCrc = new MemoryStream()) { msCrc.WriteBytes(new[] { (byte)'I', (byte)'D', (byte)'A', (byte)'T' }); msCrc.WriteBytes(FrameData); newCrc = CrcHelper.Calculate(msCrc.ToArray()); } using (var ms = new MemoryStream()) { ms.WriteUInt32(Helper.ConvertEndian(Length - 4)); ms.WriteBytes(new[] { (byte)'I', (byte)'D', (byte)'A', (byte)'T' }); ms.WriteBytes(FrameData); ms.WriteUInt32(Helper.ConvertEndian(newCrc)); ms.Position = 0; return(new IDATChunk(ms)); } }