Beispiel #1
0
        protected override void ReadValue(PsdReader reader, object userData, out LayerRecords value)
        {
            LayerRecords records = new LayerRecords();

            records.Top    = reader.ReadInt32();
            records.Left   = reader.ReadInt32();
            records.Bottom = reader.ReadInt32();
            records.Right  = reader.ReadInt32();
            records.ValidateSize();

            int channelCount = reader.ReadUInt16();

            records.ChannelCount = channelCount;

            for (int i = 0; i < channelCount; i++)
            {
                records.Channels[i].Type   = reader.ReadChannelType();
                records.Channels[i].Size   = reader.ReadLength();
                records.Channels[i].Width  = records.Width;
                records.Channels[i].Height = records.Height;
            }

            reader.ValidateSignature();

            records.BlendMode = reader.ReadBlendMode();
            records.Opacity   = reader.ReadByte();
            records.Clipping  = reader.ReadBoolean();
            records.Flags     = reader.ReadLayerFlags();
            records.Filter    = reader.ReadByte();

            value = records;
        }
Beispiel #2
0
        /// <summary>
        /// Read and convert a single point
        /// </summary>
        private double ReadBezierPoint(PsdReader reader)
        {
            var byte1 = reader.ReadByte();
            bool isNegativ = (byte1 & 0xF0) != 0;
            byte intPart = (byte)(byte1 & 0x0F);
            int intVal;

            if (isNegativ)
            {
                intVal = intPart - 16;
            }
            else
            {
                intVal = intPart;
            }

            byte[] bytes = new byte[4];

            bytes[3] = 0;
            bytes[2] = reader.ReadByte();
            bytes[1] = reader.ReadByte();
            bytes[0] = reader.ReadByte();

            var fraction = BitConverter.ToInt32(bytes, 0);

            double ret = intVal + (double)fraction / 16777216.0;

            return ret;
        }
Beispiel #3
0
        public override void ReadValue(PsdReader reader, object userData, out LayerMask value)
        {
            LayerMask mask = new LayerMask();

            mask.Top    = reader.ReadInt32();
            mask.Left   = reader.ReadInt32();
            mask.Bottom = reader.ReadInt32();
            mask.Right  = reader.ReadInt32();
            mask.Color  = reader.ReadByte();
            mask.Flag   = reader.ReadByte();

            value = mask;
        }
Beispiel #4
0
        protected override void ReadValue(PsdReader reader, object userData, out IProperties value)
        {
            Properties props = new Properties();

            int count = reader.ReadInt32();

            List <DescriptorStructure> dss = new List <DescriptorStructure>();

            for (int i = 0; i < count; i++)
            {
                string s  = reader.ReadAscii(4);
                string k  = reader.ReadAscii(4);
                var    c  = reader.ReadByte();
                var    p  = reader.ReadBytes(3);
                var    l  = reader.ReadInt32();
                var    p2 = reader.Position;
                var    ds = new DescriptorStructure(reader);
                dss.Add(ds);
                reader.Position = p2 + l;
            }

            props["Items"] = dss;

            value = props;
        }
Beispiel #5
0
        protected override void ReadValue(PsdReader reader, Object userData, out IProperties value)
        {
            Properties props = new Properties();

            props["Opacity"] = reader.ReadByte();
            value            = props;
        }
Beispiel #6
0
        protected override void ReadValue(PsdReader reader, object userData, out IProperties value)
        {
            Properties props = new Properties();

            int count = reader.ReadInt32();

            List<DescriptorStructure> dss = new List<DescriptorStructure>();

            for (int i = 0; i < count; i++)
            {
                string s = reader.ReadAscii(4);
                string k = reader.ReadAscii(4);
                var c = reader.ReadByte();
                var p = reader.ReadBytes(3);
                var l = reader.ReadInt32();
                var p2 = reader.Position;
                var ds = new DescriptorStructure(reader);
                dss.Add(ds);
                reader.Position = p2 + l;
            }

            props["Items"] = dss;

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

            int version = reader.ReadInt32();

            if (version != 1)
                throw new InvalidFormatException();

            props["HorizontalGrid"] = reader.ReadInt32();
            props["VerticalGrid"] = reader.ReadInt32();

            int guideCount = reader.ReadInt32();

            List<int> hg = new List<int>();
            List<int> vg = new List<int>();

            for (int i = 0; i < guideCount; i++)
            {
                int n = reader.ReadInt32();
                byte t = reader.ReadByte();

                if (t == 0)
                    vg.Add(n);
                else
                    hg.Add(n);
            }

            props["HorizontalGuides"] = hg.ToArray();
            props["VerticalGuides"] = vg.ToArray();

            value = props;
        }
        private static Properties ReadSliceInfo(PsdReader reader)
        {
            Properties props = new Properties();

            props["ID"]      = reader.ReadInt32();
            props["GroupID"] = reader.ReadInt32();
            int origin = reader.ReadInt32();

            if (origin == 1)
            {
                int asso = reader.ReadInt32();
            }
            props["Name"] = reader.ReadString();
            int type = reader.ReadInt32();

            props["Left"]   = reader.ReadInt32();
            props["Top"]    = reader.ReadInt32();
            props["Right"]  = reader.ReadInt32();
            props["Bottom"] = reader.ReadInt32();

            props["Url"]     = reader.ReadString();
            props["Target"]  = reader.ReadString();
            props["Message"] = reader.ReadString();
            props["AltTag"]  = reader.ReadString();

            bool b = reader.ReadBoolean();

            string cellText = reader.ReadString();

            props["HorzAlign"] = reader.ReadInt32();
            props["VertAlign"] = reader.ReadInt32();

            props["Alpha"] = reader.ReadByte();
            props["Red"]   = reader.ReadByte();
            props["Green"] = reader.ReadByte();
            props["Blue"]  = reader.ReadByte();

            return(props);
        }
Beispiel #9
0
        protected override void ReadData(PsdReader reader, object userData)
        {
            int count = reader.ReadInt32();

            List <StructureDescriptor> dss = new List <StructureDescriptor>();

            for (int i = 0; i < count; i++)
            {
                string s  = reader.ReadAscii(4);
                string k  = reader.ReadAscii(4);
                var    c  = reader.ReadByte();
                var    p  = reader.ReadBytes(3);
                var    l  = reader.ReadInt32();
                var    p2 = reader.Position;
                var    ds = new StructureDescriptor(reader);
                dss.Add(ds);
                reader.Position = p2 + l;
            }

            //props["Items"] = dss;
        }
Beispiel #10
0
        protected override void ReadValue(PsdReader reader, object userData, out IProperties value)
        {
            Properties props = new Properties();

            int version = reader.ReadInt32();

            if (version != 1)
            {
                throw new InvalidFormatException();
            }

            props["HorizontalGrid"] = reader.ReadInt32();
            props["VerticalGrid"]   = reader.ReadInt32();

            int guideCount = reader.ReadInt32();

            List <int> hg = new List <int>();
            List <int> vg = new List <int>();

            for (int i = 0; i < guideCount; i++)
            {
                int  n = reader.ReadInt32();
                byte t = reader.ReadByte();

                if (t == 0)
                {
                    vg.Add(n);
                }
                else
                {
                    hg.Add(n);
                }
            }

            props["HorizontalGuides"] = hg.ToArray();
            props["VerticalGuides"]   = vg.ToArray();

            value = props;
        }
Beispiel #11
0
 protected override void ReadValue(PsdReader reader, object userData, out IProperties value)
 {
     Properties props = new Properties();
     props["Opacity"] = reader.ReadByte();
     value = props;
 }
Beispiel #12
0
 protected override void ReadData(PsdReader reader, object userData)
 {
     Opacity = reader.ReadByte();
 }
        private static Properties ReadSliceInfo(PsdReader reader)
        {
            Properties props = new Properties();
            props["ID"] = reader.ReadInt32();
            props["GroupID"] = reader.ReadInt32();
            int origin = reader.ReadInt32();
            if (origin == 1)
            {
                int asso = reader.ReadInt32();
            }
            props["Name"] = reader.ReadString();
            int type = reader.ReadInt32();

            props["Left"] = reader.ReadInt32();
            props["Top"] = reader.ReadInt32();
            props["Right"] = reader.ReadInt32();
            props["Bottom"] = reader.ReadInt32();

            props["Url"] = reader.ReadString();
            props["Target"] = reader.ReadString();
            props["Message"] = reader.ReadString();
            props["AltTag"] = reader.ReadString();

            bool b = reader.ReadBoolean();

            string cellText = reader.ReadString();

            props["HorzAlign"] = reader.ReadInt32();
            props["VertAlign"] = reader.ReadInt32();

            props["Alpha"] = reader.ReadByte();
            props["Red"] = reader.ReadByte();
            props["Green"] = reader.ReadByte();
            props["Blue"] = reader.ReadByte();

            return props;
        }