Beispiel #1
0
 public void SetTemplate(ushort key, StainingTemplateEntry entry)
 {
     if (Templates.ContainsKey(key))
     {
         Templates[key] = entry;
     }
     else
     {
         Templates.Add(key, entry);
     }
 }
Beispiel #2
0
        public StainingTemplateFile(byte[] data)
        {
            var Header     = BitConverter.ToInt32(data, 0);
            var entryCount = BitConverter.ToUInt16(data, 4);


            Dictionary <ushort, ushort> entries = new Dictionary <ushort, ushort>();
            List <ushort> keys   = new List <ushort>();
            List <ushort> values = new List <ushort>();
            List <int>    sizes  = new List <int>();
            var           offset = 8;

            for (int i = 0; i < entryCount; i++)
            {
                var key = BitConverter.ToUInt16(data, offset);
                entries.Add(key, 0);
                keys.Add(key);
                offset += 2;
            }

            var endOfHeader = (8 + (4 * entryCount));

            for (int i = 0; i < entryCount; i++)
            {
                entries[keys[i]] = (ushort)((BitConverter.ToUInt16(data, offset) * 2) + endOfHeader);
                offset          += 2;
            }


            var idx = 0;

            foreach (var kv in entries)
            {
                var entry = new StainingTemplateEntry(data, kv.Value);
                Templates.Add(kv.Key, entry);
                idx++;
            }
        }