public TypeToolTyShPH6(BinaryReverseReader r) { ushort Version = r.ReadUInt16(); //1= Photoshop 5.0 this.Transform = new Matrix2D(r); ushort TextDescriptorVersion = r.ReadUInt16(); //=50. For Photoshop 6.0. if (TextDescriptorVersion == 50) { uint XTextDescriptorVersion = r.ReadUInt32(); //=16. For Photoshop 6.0. this.TxtDescriptor = new PsdDescriptor(r); ushort WarpVersion = r.ReadUInt16(); //2 bytes, =1. For Photoshop 6.0. uint WarpDescriptorVersion = r.ReadUInt32(); //4 bytes, =16. For Photoshop 6.0. var a = (PsdTextData)TxtDescriptor.getObjects()["EngineData"]; engine = (object)a.getProperties(); engineData = (Dictionary <string, object>)engine; StylesheetReader = new TdTaStylesheetReader(engineData); //string desc = this.TxtDescriptor.getString(); this.WarpDescriptor = new PsdDescriptor(r); //Warp descriptor this.Data = r.ReadBytes((int)r.BytesToEnd); //17 bytes???? All zeroes? if (Data.Length != 17 || !(Array.TrueForAll(Data, b => b == 0))) { string s = ReadableBinary.CreateHexEditorString(Data); } } }
static private string GetPSDColor(PsdDescriptor descr) { PsdDescriptor clr = (PsdDescriptor)descr.getObjects()["Clr "]; Dictionary <string, PsdObject> values = clr.getObjects(); var valR = (PsdDouble)values["Rd "]; var valG = (PsdDouble)values["Grn "]; var valB = (PsdDouble)values["Bl "]; return(Color.FromArgb((int)(ReadPSDDouble(GetByteStreamFromDouble(valR.getValue()))), (int)(ReadPSDDouble(GetByteStreamFromDouble(valG.getValue()))), (int)(ReadPSDDouble(GetByteStreamFromDouble(valB.getValue())))).Name); }
static private void GetPSDColorOffset(PsdDescriptor descr, ref long redOffset, ref long greenOffset, ref long blueOffset) { PsdDescriptor clr = (PsdDescriptor)descr.getObjects()["Clr "]; Dictionary <string, PsdObject> values = clr.getObjects(); var valR = (PsdDouble)values["Rd "]; var valG = (PsdDouble)values["Grn "]; var valB = (PsdDouble)values["Bl "]; redOffset = valR.offset; greenOffset = valG.offset; blueOffset = valB.offset; }