/// <summary> /// schreibt das Bitmap als POI in den Stream (falls der Colormode stimmt, sonst Exception) /// </summary> /// <param name="bw"></param> public void WriteAsPoi(BinaryReaderWriter bw) { switch (Colormode) { case BitmapColorMode.POI_SIMPLE: case BitmapColorMode.POI_TR: bw.Write((byte)Width); bw.Write((byte)Height); bw.Write((byte)colColorTable.Length); bw.Write((byte)Colormode); BinaryColor.WriteColorTable(bw, colColorTable, false); data.Write(bw); break; case BitmapColorMode.POI_ALPHA: bw.Write((byte)Width); bw.Write((byte)Height); bw.Write((byte)colColorTable.Length); bw.Write((byte)Colormode); BinaryColor.WriteColorTable(bw, colColorTable, true); data.Write(bw); break; default: throw new Exception(string.Format("Unerlaubter ColorMode für Bitmap ({0:x2}).", Colormode)); } }
public void Write(BinaryReaderWriter bw, int iCodepage) { bw.Write(Options); XBitmapDay.WriteAsPoi(bw); if (WithNightXpm) { XBitmapNight.WriteAsPoi(bw); } if (WithString) { Text.Write(bw, iCodepage); } if (WithExtendedOptions) { bw.Write(ExtOptions); switch (FontColType) { case FontColours.Day: BinaryColor.WriteColor(bw, colFontColour[0]); break; case FontColours.Night: BinaryColor.WriteColor(bw, colFontColour[1]); break; case FontColours.DayAndNight: BinaryColor.WriteColorTable(bw, colFontColour); break; } } }
/// <summary> /// schreibt nur die Farbtabelle (für Polygon/Polyline) /// </summary> /// <param name="bw"></param> /// <param name="bWithAlpha"></param> public void WriteColorTable(BinaryReaderWriter bw) { BinaryColor.WriteColorTable(bw, colColorTable, false); }
public void Write(BinaryReaderWriter bw, int iCodepage) { bw.Write(Options); bw.Write(Options2); switch (Polylinetype) { case PolylineType.Day2: BinaryColor.WriteColorTable(bw, colDayColor); break; case PolylineType.Day2_Night2: BinaryColor.WriteColorTable(bw, colDayColor); BinaryColor.WriteColorTable(bw, colNightColor); break; case PolylineType.Day1_Night2: BinaryColor.WriteColor(bw, colDayColor[0]); BinaryColor.WriteColorTable(bw, colNightColor); break; case PolylineType.NoBorder_Day2_Night1: BinaryColor.WriteColorTable(bw, colDayColor); BinaryColor.WriteColor(bw, colNightColor[0]); break; case PolylineType.NoBorder_Day1: BinaryColor.WriteColor(bw, colDayColor[0]); break; case PolylineType.NoBorder_Day1_Night1: BinaryColor.WriteColor(bw, colDayColor[0]); BinaryColor.WriteColor(bw, colNightColor[0]); break; } if (BitmapHeight == 0) // Linien- und Randbreite ermitteln { switch (Polylinetype) { case PolylineType.Day2: case PolylineType.Day2_Night2: case PolylineType.Day1_Night2: bw.Write((byte)InnerWidth); if (InnerWidth > 0) { bw.Write((byte)(2 * BorderWidth + InnerWidth)); } break; case PolylineType.NoBorder_Day2_Night1: case PolylineType.NoBorder_Day1: case PolylineType.NoBorder_Day1_Night1: bw.Write((byte)InnerWidth); break; } } else { XBitmapDay.WriteRawdata(bw); } if (WithString) { Text.Write(bw, iCodepage); } if (WithExtendedOptions) // es folgen weitere (max. 2) Farben { bw.Write(ExtOptions); switch (FontColType) { case FontColours.Day: BinaryColor.WriteColor(bw, colFontColour[0]); break; case FontColours.Night: BinaryColor.WriteColor(bw, colFontColour[1]); break; case FontColours.DayAndNight: BinaryColor.WriteColorTable(bw, colFontColour); break; } } }
public void Write(BinaryReaderWriter bw, int iCodepage) { bw.Write(Options); switch (Colortype) { case ColorType.Day1: BinaryColor.WriteColor(bw, colDayColor[0]); break; case ColorType.Day1_Night1: BinaryColor.WriteColor(bw, colDayColor[0]); BinaryColor.WriteColor(bw, colNightColor[0]); break; case ColorType.BM_Day2: XBitmapDay.WriteColorTable(bw); XBitmapDay.WriteRawdata(bw); break; case ColorType.BM_Day2_Night2: BinaryColor.WriteColorTable(bw, colDayColor); BinaryColor.WriteColorTable(bw, colNightColor); XBitmapDay.WriteRawdata(bw); break; case ColorType.BM_Day1_Night2: BinaryColor.WriteColor(bw, colDayColor[0]); BinaryColor.WriteColorTable(bw, colNightColor); XBitmapDay.WriteRawdata(bw); break; case ColorType.BM_Day2_Night1: BinaryColor.WriteColorTable(bw, colDayColor); BinaryColor.WriteColor(bw, colNightColor[0]); XBitmapDay.WriteRawdata(bw); break; case ColorType.BM_Day1: BinaryColor.WriteColor(bw, colDayColor[0]); XBitmapDay.WriteRawdata(bw); break; case ColorType.BM_Day1_Night1: BinaryColor.WriteColor(bw, colDayColor[0]); BinaryColor.WriteColor(bw, colNightColor[0]); XBitmapDay.WriteRawdata(bw); break; } if (WithString) { Text.Write(bw, iCodepage); } if (WithExtendedOptions) // es folgen weitere (max. 2) Farben { bw.Write(ExtOptions); switch (FontColType) { case FontColours.Day: BinaryColor.WriteColor(bw, colFontColour[0]); break; case FontColours.Night: BinaryColor.WriteColor(bw, colFontColour[1]); break; case FontColours.DayAndNight: BinaryColor.WriteColorTable(bw, colFontColour); break; } } }