public override void Write(Stream output)
{
BitStream bits = new BitStream(output);
byte[] width = BitConverter.GetBytes(this._width);
output.Write(width, 0, 2);
bits.WriteBits(2, (Int32)this._startCapStyle);
bits.WriteBits(2, (Int32)this._joinstyle);
bits.WriteBits(1, Convert.ToInt32(this._hasFillFlag));
bits.WriteBits(1, Convert.ToInt32(this._noHScale));
bits.WriteBits(1, Convert.ToInt32(this._noVScale));
bits.WriteBits(1, Convert.ToInt32(this._pixelHinting));
bits.WriteBits(5, 0); // reserved
bits.WriteBits(1, Convert.ToInt32(this._noClose));
bits.WriteBits(2, (Int32)this._endCapStyle);
if (this._joinstyle.Equals(JoinStyle.Miter))
{
bits.WriteFlush();
bits.WriteBitsFB(16, this._miterLimtiFactor);
}
if (!this._hasFillFlag)
{
bits.WriteFlush();
this._color.Write(output);
}
else
{
bits.WriteFlush();
this._fillStyle.Write(output);
}
}