コード例 #1
0
ファイル: Scan.cs プロジェクト: hughbe/Metafile-Dumper
        public Scan(MetafileReader reader)
        {
            Count  = reader.ReadUInt16();
            Top    = reader.ReadUInt16();
            Bottom = reader.ReadUInt16();

            var scanLines = new (ushort, ushort)[Count];
コード例 #2
0
 public BitmapCoreHeader(MetafileReader reader)
 {
     HeaderSize     = reader.ReadUInt32();
     Width          = reader.ReadUInt16();
     Height         = reader.ReadUInt16();
     NumberOfPlanes = reader.ReadUInt16();
     BitsPerPixel   = (BitCount)reader.ReadUInt16();
 }
コード例 #3
0
ファイル: Palette.cs プロジェクト: hughbe/Metafile-Dumper
        public Palette(MetafileReader reader)
        {
            Start           = reader.ReadUInt16();
            NumberOfEntries = reader.ReadUInt16();

            var entries = new PaletteEntry[NumberOfEntries];

            for (uint i = 0; i < NumberOfEntries; i++)
            {
                entries[i] = new PaletteEntry(reader);
            }
            Entries = entries;
        }
コード例 #4
0
 public BitmapInfoHeader(MetafileReader reader)
 {
     HeaderSize      = reader.ReadUInt32();
     Width           = reader.ReadInt32();
     Height          = reader.ReadInt32();
     NumberOfPlanes  = reader.ReadUInt16();
     BitsPerPixel    = (BitCount)reader.ReadUInt16();
     Compression     = (Compression)reader.ReadUInt32();
     PixelsPerMeterX = reader.ReadInt32();
     PixelsPerMeterY = reader.ReadInt32();
     ColorsUsed      = reader.ReadUInt32();
     ColorsImportant = reader.ReadUInt32();
 }
コード例 #5
0
        public EmfPlusDrawDriverString(MetafileReader reader) : base(reader)
        {
            BrushIdOrColor = reader.ReadUInt32();
            OptionsFlags   = (DriverStringOptionsFlags)reader.ReadUInt32();
            MatrixPresent  = reader.ReadBoolean();
            GlyphCount     = reader.ReadUInt32();

            var glyphs = new List <ushort>();

            for (int i = 0; i < GlyphCount; i++)
            {
                ushort glyph = reader.ReadUInt16();
                glyphs.Add(glyph);
            }
            Glyphs = glyphs;

            var positions = new List <EmfPlusPointF>();

            for (uint i = 0; i < GlyphCount; i++)
            {
                var position = new EmfPlusPointF(reader);
                positions.Add(position);
            }
            Positions = positions;

            if (MatrixPresent)
            {
                Transform = new EmfPlusTransformMatrix(reader);
            }
        }
コード例 #6
0
ファイル: Header.cs プロジェクト: hughbe/Metafile-Dumper
 public Header(MetafileReader reader)
 {
     Bounds                         = new RectL(reader);
     Frame                          = new RectL(reader);
     Signature                      = reader.ReadUInt32();
     Version                        = reader.ReadUInt32();
     NumberOfBytes                  = reader.ReadUInt32();
     NumberOfRecords                = reader.ReadUInt32();
     NumberOfObjects                = reader.ReadUInt16();
     Reserved                       = reader.ReadUInt16();
     DescriptionLength              = reader.ReadUInt32();
     DescriptionOffset              = reader.ReadUInt32();
     NumberOfPaletteEntries         = reader.ReadUInt32();
     ReferenceDeviceSizePixels      = new SizeL(reader);
     ReferenceDeviceSizeMillimeters = new SizeL(reader);
 }
コード例 #7
0
 public EmfPlusSetTSGraphics(MetafileReader reader) : base(reader)
 {
     SmoothingMode          = (SmoothingMode)reader.ReadByte();
     TextRenderingHint      = (TextRenderingHint)reader.ReadByte();
     CompositingMode        = (CompositingMode)reader.ReadByte();
     CompositingQuality     = (CompositingQuality)reader.ReadByte();
     RenderOriginX          = reader.ReadInt16();
     RenderOriginY          = reader.ReadInt16();
     TextContrast           = reader.ReadUInt16();
     FilterType             = (FilterType)reader.ReadByte();
     PixelOffsetMode        = (PixelOffsetMode)reader.ReadByte();
     WorldToDeviceTransform = new EmfPlusTransformMatrix(reader);
     if (HasPalette)
     {
         Palette = new EmfPlusPalette(reader);
     }
 }
コード例 #8
0
        public Region(MetafileReader reader)
        {
            NextInChain           = reader.ReadUInt16();
            ObjectType            = reader.ReadInt16();
            ObjectCount           = reader.ReadUInt32();
            RegionCount           = reader.ReadInt16();
            ScansCount            = reader.ReadInt16();
            MaximumScanPointCount = reader.ReadInt16();
            BoundingRectangle     = new Rect(reader);

            if (ScansCount > 0)
            {
                var scans = new Scan[ScansCount];
                for (int i = 0; i < ScansCount; i++)
                {
                    scans[i] = new Scan(reader);
                }
                Scans = scans;
            }
            else
            {
                Scans = Enumerable.Empty <Scan>();
            }
        }
コード例 #9
0
 public HatchBrushData(MetafileReader reader)
 {
     HatchStyle = (HatchStyle)reader.ReadUInt16();
 }
コード例 #10
0
 public LogBrush(MetafileReader reader)
 {
     Style = (BrushStyle)reader.ReadUInt16();
     Color = new ColorRef(reader);
     Hatch = (HatchStyle)reader.ReadUInt16();
 }
コード例 #11
0
 public Pen(MetafileReader reader)
 {
     Style = (PenStyle)reader.ReadUInt16();
     Width = new PointS(reader);
     Color = new ColorRef(reader);
 }
コード例 #12
0
 public PolyPolygon(MetafileReader reader)
 {
     NumberOfPolygons = reader.ReadUInt16();
     PointsPerPolygon = Utilities.ReadUInt16s(reader, NumberOfPolygons);
     PolygonPoints    = Utilities.GetPointSs(reader, NumberOfPolygonPoints);
 }
コード例 #13
0
 public Brush(MetafileReader reader)
 {
     Style     = (BrushStyle)reader.ReadUInt16();
     Color     = reader.ReadUInt32();
     HatchData = BrushHatchData.GetBrushHatchData(reader, Style);
 }