示例#1
0
        public StructureObjectArray(PsdReader reader)
        {
            int version = reader.ReadInt32();

            this.Add("Name", reader.ReadString());
            this.Add("ClassID", reader.ReadKey());

            int count = reader.ReadInt32();

            List <Properties> items = new List <Properties>();

            for (int i = 0; i < count; i++)
            {
                Properties props = new Properties();
                props.Add("Type1", reader.ReadKey());
                props.Add("EnumName", reader.ReadType());


                props.Add("Type2", PsdUtility.ToUnitType(reader.ReadType()));
                int d4 = reader.ReadInt32();
                props.Add("Values", reader.ReadDoubles(d4));

                items.Add(props);
            }
            this.Add("items", items.ToArray());
        }
示例#2
0
        protected override void ReadValue(PsdReader reader, object userData, out LinkedLayer value)
        {
            reader.ValidateSignature("liFD");
            int version = reader.ReadInt32();

            Guid        id         = new Guid(reader.ReadPascalString(1));
            string      name       = reader.ReadString();
            string      type       = reader.ReadType();
            string      creator    = reader.ReadType();
            long        length     = reader.ReadInt64();
            IProperties properties = reader.ReadBoolean() == true ? new DescriptorStructure(reader) : null;

            bool isDocument = this.IsDocument(reader);
            LinkedDocumentReader           documentReader   = null;
            LinkedDocumnetFileHeaderReader fileHeaderReader = null;

            if (length > 0 && isDocument == true)
            {
                long position = reader.Position;
                documentReader   = new LinkedDocumentReader(reader, length);
                reader.Position  = position;
                fileHeaderReader = new LinkedDocumnetFileHeaderReader(reader, length);
            }

            value = new LinkedLayer(name, id, documentReader, fileHeaderReader);
        }
        public DescriptorStructure(PsdReader reader, bool hasVersion)
        {
            if (hasVersion == true)
            {
                this.version = reader.ReadInt32();
            }

            this.Add("Name", reader.ReadString());
            this.Add("ClassID", reader.ReadKey());

            int count = reader.ReadInt32();
            for (int i = 0; i < count; i++)
            {
                string key = reader.ReadKey();
                string osType = reader.ReadType();
                if (key == "EngineData")
                {
                    this.Add(key.Trim(), new StructureEngineData(reader));
                }
                else
                {
                    object value = StructureReader.Read(osType, reader);
                    this.Add(key.Trim(), value);
                }
            }
        }
示例#4
0
        public StructureDescriptor(PsdReader reader, bool hasVersion)
        {
            if (hasVersion == true)
            {
                this.version = reader.ReadInt32();
            }

            ClassName = reader.ReadString();
            ClassId   = reader.ReadKey();

            Items = new Properties();
            int count = reader.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                string key    = reader.ReadKey();
                string osType = reader.ReadType();

                if (key == "EngineData")
                {
                    Items.Add(key.Trim(), new StructureEngineData(reader));
                }
                else
                {
                    StructureItem value = StructureReader.Read(osType, reader);
                    Items.Add(key.Trim(), value);
                }
            }
        }
        public StructureUnitFloat(PsdReader reader)
        {
            String type = reader.ReadType();

            this.Add("Type", PsdUtility.ToUnitType(type));
            this.Add("Value", reader.ReadDouble());
        }
        public StructureUnitFloat(PsdReader reader)
        {
            string type = reader.ReadType();

            this.Add("Type", PsdUtility.ToUnitType(type));
            this.Add("Value", reader.ReadDouble());
        }
示例#7
0
        public StructureUnitFloat(PsdReader reader)
        {
            string type = reader.ReadType();

            Unit  = PsdUtility.ToUnitType(type);
            Value = reader.ReadDouble();
        }
示例#8
0
        protected override void ReadData(PsdReader reader, object userData)
        {
            reader.ValidateSignature("liFE");

            int version = reader.ReadInt32();

            Guid   id      = new Guid(reader.ReadPascalString(1));
            string name    = reader.ReadString();
            string type    = reader.ReadType();
            string creator = reader.ReadType();

            long        length      = reader.ReadInt64();
            IProperties properties  = reader.ReadBoolean() == true ? new StructureDescriptor(reader).Items : null;
            Uri         absoluteUri = this.ReadAboluteUri(reader);

            EmbeddedLayer = new EmbeddedLayer(id, reader.Resolver, absoluteUri);
        }
        protected override void ReadValue(PsdReader reader, Object userData, out EmbeddedLayer value)
        {
            reader.ValidateSignature("liFE");

            Int32 version = reader.ReadInt32();

            Guid   id      = new Guid(reader.ReadPascalString(1));
            String name    = reader.ReadString();
            String type    = reader.ReadType();
            String creator = reader.ReadType();

            Int64       length      = reader.ReadInt64();
            IProperties properties  = reader.ReadBoolean() == true ? new DescriptorStructure(reader) : null;
            Uri         absoluteUri = this.ReadAboluteUri(reader);

            value = new EmbeddedLayer(id, reader.Resolver, absoluteUri);
        }
示例#10
0
        public StructureList(PsdReader reader)
        {
            Items = new List <StructureItem>();
            int count = reader.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                string        type  = reader.ReadType();
                StructureItem value = StructureReader.Read(type, reader);
                Items.Add(value);
            }
        }
示例#11
0
 public BaseStructure(PsdReader reader)
 {
     List<object> items = new List<object>();
     int count = reader.ReadInt32();
     for (int i = 0; i < count; i++)
     {
         string type = reader.ReadType();
         object value = StructureReader.Read(type, reader);
         items.Add(value);
     }
     this.Add("Items", items.ToArray());
 }
示例#12
0
        private Boolean IsDocument(PsdReader reader)
        {
            Int64 position = reader.Position;

            try
            {
                return(reader.ReadType() == "8BPS");
            }
            finally
            {
                reader.Position = position;
            }
        }
示例#13
0
        private bool IsDocument(PsdReader reader)
        {
            long position = reader.Position;

            try
            {
                return(reader.ReadType() == "8BPS");
            }
            finally
            {
                reader.Position = position;
            }
        }
示例#14
0
        public BaseStructure(PsdReader reader)
        {
            List <object> items = new List <object>();
            int           count = reader.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                string type  = reader.ReadType();
                object value = StructureReader.Read(type, reader);
                items.Add(value);
            }
            this.Add("Items", items.ToArray());
        }
        public StructureObjectArray(PsdReader reader)
        {
            int version = reader.ReadInt32();
            this.Add("Name", reader.ReadString());
            this.Add("ClassID", reader.ReadKey());

            int count = reader.ReadInt32();

            List<Properties> items = new List<Properties>();

            for (int i = 0; i < count; i++)
            {
                Properties props = new Properties();
                props.Add("Type1", reader.ReadKey());
                props.Add("EnumName", reader.ReadType());

                props.Add("Type2", PsdUtility.ToUnitType(reader.ReadType()));
                int d4 = reader.ReadInt32();
                props.Add("Values", reader.ReadDoubles(d4));

                items.Add(props);
            }
            this.Add("items", items.ToArray());
        }
        public StructureObjectArray(PsdReader reader)
        {
            int version = reader.ReadInt32();

            Name    = reader.ReadString();
            ClassId = reader.ReadKey();

            int count = reader.ReadInt32();

            Items = new List <ArrayResourceItem>();

            for (int i = 0; i < count; i++)
            {
                ArrayResourceItem props = new ArrayResourceItem();
                props.Type1    = reader.ReadKey();
                props.EnumName = reader.ReadType();

                props.Unit = PsdUtility.ToUnitType(reader.ReadType());
                int d4 = reader.ReadInt32();
                props.Values = reader.ReadDoubles(d4);

                Items.Add(props);
            }
        }
        protected override void ReadValue(PsdReader reader, object userData, out IProperties value)
        {
            Properties props = new Properties();

            while (reader.Position < this.EndPosition)
            {
                reader.ValidateSignature(true);
                string resourceID = reader.ReadType();
                long length = this.ReadLength(reader, resourceID);

                ResourceReaderBase resourceReader = ReaderCollector.CreateReader(resourceID, reader, length);
                string resourceName = ReaderCollector.GetDisplayName(resourceID);

                props[resourceName] = resourceReader;
            }

            value = props;
        }
示例#18
0
        protected override void ReadValue(PsdReader reader, object userData, out IProperties value)
        {
            Properties props = new Properties();

            while (reader.Position < this.EndPosition)
            {
                reader.ValidateSignature(true);
                string resourceID = reader.ReadType();
                long   length     = this.ReadLength(reader, resourceID);

                ResourceReaderBase resourceReader = ReaderCollector.CreateReader(resourceID, reader, length);
                string             resourceName   = ReaderCollector.GetDisplayName(resourceID);

                props[resourceName] = resourceReader;
            }

            value = props;
        }
示例#19
0
        protected override void ReadData(PsdReader reader, object userData)
        {
            var resources = new List <IResourceBlock>();

            while (reader.Position < this.EndPosition)
            {
                reader.ValidateSignature(true);
                string resourceID = reader.ReadType();
                long   length     = this.ReadLength(reader, resourceID);

                var    resourceReader = ReaderCollector.CreateReader(resourceID, reader, length);
                string resourceName   = ReaderCollector.GetDisplayName(resourceID);

                resources.Add(resourceReader);
            }

            Resources = resources.ToArray();
        }
示例#20
0
        protected override void ReadData(PsdReader reader, object userData)
        {
            var id = reader.ReadType();

            base.ReadData(reader, userData);
        }