Пример #1
0
        private IccTagDataEntry[] ReadTagData(IccDataReader reader)
        {
            IccTagTableEntry[] tagTable = this.ReadTagTable(reader);
            var entries = new List <IccTagDataEntry>(tagTable.Length);
            var store   = new Dictionary <uint, IccTagDataEntry>();

            foreach (IccTagTableEntry tag in tagTable)
            {
                IccTagDataEntry entry;
                if (store.ContainsKey(tag.Offset))
                {
                    entry = store[tag.Offset];
                }
                else
                {
                    try
                    {
                        entry = reader.ReadTagDataEntry(tag);
                    }
                    catch
                    {
                        // Ignore tags that could not be read
                        continue;
                    }

                    store.Add(tag.Offset, entry);
                }

                entry.TagSignature = tag.Signature;
                entries.Add(entry);
            }

            return(entries.ToArray());
        }