public void Write(BinaryPSDWriter writer) { writer.Write("8BIM"); writer.Write(this.Tag); writer.StartLengthBlock(typeof(uint)); this.SubWrite(writer); writer.EndLengthBlock(); if (!(this is EffectBase)) { writer.PadToNextMultiple(2); } }
//public string GetIdAsFOURCC() //{ // return "" + (char)((this.ID >> 24) & 0xff) + (char)((this.ID >> 16) & 0xff) + (char)((this.ID >> 8) & 0xff) + (char)(this.ID & 0xff); //} public void Write(BinaryPSDWriter writer) { writer.Write("8BIM"); writer.Write(this.ID); writer.WritePascalString(this.Name); writer.StartLengthBlock(typeof(uint)); this.SubWrite(writer); writer.EndLengthBlock(); writer.PadToNextMultiple(2); //if (writer.GetCurrentBlockLength() % 2 == 1) // writer.Write((byte)0); }
public void Save(string filename) { if (File.Exists(filename)) File.Delete(filename); FileStream stream = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write); BinaryPSDWriter writer = new BinaryPSDWriter(stream); writer.Write("8BPS"); this._header.Write(writer); writer.Write((uint)0); //No palette //TODO: palette //if (this._imageResources == null) // this._imageResources = new Dictionary<ImageResource.ResourceIDs, ImageResource>(); writer.StartLengthBlock(typeof(uint)); foreach (ImageResource imgRes in this._imageResources) imgRes.Write(writer); writer.EndLengthBlock(); // Layers writer.StartLengthBlock(typeof(uint), 4); // LayerInfo: writer.StartLengthBlock(typeof(uint)); writer.Write((ushort)this.Layers.Count); foreach (Layer layer in this.Layers) layer.Write(writer); //Layer pixel data foreach (Layer layer in this.Layers) layer.WritePixels(writer); writer.EndLengthBlock(); writer.EndLengthBlock(); writer.PadToNextMultiple(4); //Global Mask writer.StartLengthBlock(typeof(uint)); if (this._tempGlobalLayerMask != null) writer.Write(this._tempGlobalLayerMask); writer.EndLengthBlock(); //Global image (merged) //TODO: ! if (this._globalImage != null) this._globalImage.Save(writer); }
public void Save(string filename) { if (File.Exists(filename)) { File.Delete(filename); } FileStream stream = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write); BinaryPSDWriter writer = new BinaryPSDWriter(stream); writer.Write("8BPS"); this._header.Write(writer); writer.Write((uint)0); //No palette //TODO: palette //if (this._imageResources == null) // this._imageResources = new Dictionary<ImageResource.ResourceIDs, ImageResource>(); writer.StartLengthBlock(typeof(uint)); foreach (ImageResource imgRes in this._imageResources) { imgRes.Write(writer); } writer.EndLengthBlock(); // Layers writer.StartLengthBlock(typeof(uint), 4); // LayerInfo: writer.StartLengthBlock(typeof(uint)); writer.Write((ushort)this.Layers.Count); foreach (Layer layer in this.Layers) { layer.Write(writer); } //Layer pixel data foreach (Layer layer in this.Layers) { layer.WritePixels(writer); } writer.EndLengthBlock(); writer.EndLengthBlock(); writer.PadToNextMultiple(4); //Global Mask writer.StartLengthBlock(typeof(uint)); if (this._tempGlobalLayerMask != null) { writer.Write(this._tempGlobalLayerMask); } writer.EndLengthBlock(); //Global image (merged) //TODO: ! if (this._globalImage != null) { this._globalImage.Save(writer); } }
public void Write(BinaryPSDWriter writer) { writer.Write("8BIM"); writer.Write(this.Tag); writer.StartLengthBlock(typeof(uint)); this.SubWrite(writer); writer.EndLengthBlock(); if (!(this is EffectBase)) writer.PadToNextMultiple(2); }