public static ColorValueExtent ColorValueExtent(MetafileReader reader) { ColorValueExtent result; if (reader.Descriptor.ColorModel == ColorModel.RGB) { MetafileColor min = reader.ReadDirectColor(); MetafileColor max = reader.ReadDirectColor(); result = new ColorValueExtent(ColorSpace.RGB, min, max); } else if (reader.Descriptor.ColorModel == ColorModel.CMYK) { MetafileColor min = reader.ReadDirectColor(); MetafileColor max = reader.ReadDirectColor(); result = new ColorValueExtent(ColorSpace.CMYK, min, max); } else if (reader.Descriptor.ColorModel == ColorModel.CIELAB || reader.Descriptor.ColorModel == ColorModel.CIELUV || reader.Descriptor.ColorModel == ColorModel.RGBrelated) { double firstScale = reader.ReadReal(); double firstOffset = reader.ReadReal(); double secondScale = reader.ReadReal(); double secondOffset = reader.ReadReal(); double thirdScale = reader.ReadReal(); double thirdOffset = reader.ReadReal(); result = new ColorValueExtent(ColorSpace.CIE, firstScale, firstOffset, secondScale, secondOffset, thirdScale, thirdOffset); } else { // unsupported, just return a default unknown color space result = new ColorValueExtent(); } return(result); }
public static ColorTable ColorTable(MetafileReader reader) { int startIndex = reader.ReadColorIndex(); var colors = new List <MetafileColor>(); while (reader.HasMoreData()) { colors.Add(reader.ReadDirectColor()); } return(new ColorTable(startIndex, colors.ToArray())); }
public static BackgroundColor BackgroundColor(MetafileReader reader) { return(new BackgroundColor(reader.ReadDirectColor())); }