示例#1
0
 public EmfPlusTextureBrushOptionalData(MetafileReader reader, BrushDataFlags flags, uint size)
 {
     if ((flags & BrushDataFlags.HasTransform) != 0)
     {
         Transform = new EmfPlusTransformMatrix(reader);
     }
     Image = new EmfPlusImage(reader, size);
 }
        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);
        }