public override void Write(BinaryPSDWriter writer) { writer.StartLengthBlock(typeof(uint)); if (this.Rectangle != null) { writer.WritePSDRectangle(this.Rectangle); //new Rectangle(this.Rectangle).Write(writer); writer.Write(this._color); writer.Write(this._flags); if (this._otherRectangle != null) { writer.Write(this._flags2); writer.Write(this._maskBg); writer.WritePSDRectangle(this._otherRectangle); //new Rectangle(this._otherRectangle).Write(writer); } else { writer.Write((short)0); //padding } } writer.EndLengthBlock(); }
public override void Write(BinaryPSDWriter writer) { writer.StartLengthBlock(typeof(uint)); if (this.Rectangle != null) { writer.WritePSDRectangle(this.Rectangle); //new Rectangle(this.Rectangle).Write(writer); writer.Write(this._color); writer.Write(this._flags); if (this._otherRectangle != null) { writer.Write(this._flags2); writer.Write(this._maskBg); writer.WritePSDRectangle(this._otherRectangle); //new Rectangle(this._otherRectangle).Write(writer); } else writer.Write((short)0); //padding } writer.EndLengthBlock(); }
public void Write(BinaryPSDWriter writer) { writer.WritePSDRectangle(this._rect); // new Rectangle(this._rect).Write(writer); writer.Write((ushort)this._channels.Count); foreach (Channel channel in this._channels.Values) { channel.Write(writer); } writer.Write("8BIM"); BlendKeys bk = (BlendKeys)Enum.Parse(typeof(BlendKeys), this.BlendKey); _blendKeysPsd bkPsd = (_blendKeysPsd)(int)bk; writer.Write(bkPsd.ToString()); writer.Write(this.Opacity); writer.Write(this.Clipping); writer.Write(this.Flags); writer.Write((byte)0); //padding writer.StartLengthBlock(typeof(uint)); if (this._mask != null || (this._blendRanges != null && this._blendRanges.Count > 0) || !string.IsNullOrEmpty(this.Name)) { if (this._mask != null) { this._mask.Write(writer); } else { writer.Write((uint)0); //TODO: should be a static of Mask..? } //blending ranges writer.Write((uint)this._blendRanges.Count * 4); foreach (System.Drawing.Color clr in this._blendRanges) { writer.Write((uint)clr.ToArgb()); } //why is there padding here? Seems unnecessary. long namePosition = writer.BaseStream.Position; writer.WritePascalString(this.Name); int paddingBytes = (int)((writer.BaseStream.Position - namePosition) % 4); for (int i = 0; i < paddingBytes; i++) { writer.Write((byte)0); } foreach (LayerResource res in this._resources.Values) { res.Write(writer); } } writer.EndLengthBlock(); }
public void Write(BinaryPSDWriter writer) { writer.WritePSDRectangle(this._rect); // new Rectangle(this._rect).Write(writer); writer.Write((ushort)this._channels.Count); foreach (Channel channel in this._channels.Values) { channel.Write(writer); } writer.Write("8BIM"); BlendKeys bk = (BlendKeys)Enum.Parse(typeof(BlendKeys), this.BlendKey); _blendKeysPsd bkPsd = (_blendKeysPsd)(int)bk; writer.Write(bkPsd.ToString()); writer.Write(this.Opacity); writer.Write(this.Clipping); writer.Write(this.Flags); writer.Write((byte)0); //padding writer.StartLengthBlock(typeof(uint)); if (this._mask != null || (this._blendRanges != null && this._blendRanges.Count > 0) || !string.IsNullOrEmpty(this.Name)) { if (this._mask != null) this._mask.Write(writer); else writer.Write((uint)0); //TODO: should be a static of Mask..? //blending ranges writer.Write((uint)this._blendRanges.Count * 4); foreach (System.Drawing.Color clr in this._blendRanges) writer.Write((uint)clr.ToArgb()); //why is there padding here? Seems unnecessary. long namePosition = writer.BaseStream.Position; writer.WritePascalString(this.Name); int paddingBytes = (int)((writer.BaseStream.Position - namePosition) % 4); for (int i = 0; i < paddingBytes; i++) writer.Write((byte)0); foreach (LayerResource res in this._resources.Values) { res.Write(writer); } } writer.EndLengthBlock(); }