public static EmfPlusObjectData GetObject(MetafileReader reader, ObjectType type, uint size)
        {
            EmfPlusObjectData data;

            switch (type)
            {
            case ObjectType.Brush:
                data = new EmfPlusBrush(reader, size);
                break;

            case ObjectType.Pen:
                data = new EmfPlusPen(reader, size);
                break;

            case ObjectType.Path:
                data = new EmfPlusPath(reader, size);
                break;

            case ObjectType.Region:
                data = new EmfPlusRegion(reader, size);
                break;

            case ObjectType.Image:
                data = new EmfPlusImage(reader, size);
                break;

            case ObjectType.Font:
                data = new EmfPlusFont(reader, size);
                break;

            case ObjectType.StringFormat:
                data = new EmfPlusStringFormat(reader, size);
                break;

            case ObjectType.ImageAttributes:
                data = new EmfPlusImageAttributes(reader, size);
                break;

            case ObjectType.CustomLineCap:
                data = new EmfPlusCustomLineCap(reader, size);
                break;

            default:
                throw new InvalidOperationException($"Unknown object type {type}.");
            }

            return(data);
        }
Beispiel #2
0
 public EmfPlusPen(MetafileReader reader, uint size) : base(reader, size)
 {
     Type  = reader.ReadInt32();
     Data  = new EmfPlusPenData(reader);
     Brush = new EmfPlusBrush(reader, size - 12 - Data.Size);
 }