private static IDAT CreateIDAT(byte[] bytes, int startIndex) { byte[] data = bytes.Skip(startIndex).Take(short.MaxValue).ToArray(); uint crc = Crc32Algorithm.Compute(data); IDAT idat = new IDAT(data, crc); return(idat); }
public static List <IDAT> SplitToIDATs(byte[] bytes) { if (bytes.Length == 0) { return new List <IDAT> { CreateIDAT(bytes, 0) } } ; List <IDAT> result = new List <IDAT>(); for (int i = 0; i < bytes.Length; i += short.MaxValue) { IDAT idat = CreateIDAT(bytes, i); result.Add(idat); } return(result); }