예제 #1
0
        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);
        }
예제 #2
0
        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);
        }