Metafile Klasse

Definition

Definiert eine Grafikmetadatei. Eine Metadatei enthält Datensätze, die eine Abfolge von Grafikvorgängen beschreiben, die aufgezeichnet (konstruiert) und wiedergegeben werden können (angezeigt). Diese Klasse ist nicht vererbbar.

public ref class Metafile sealed : System::Drawing::Image
[System.Runtime.InteropServices.ComVisible(false)]
[System.Serializable]
public sealed class Metafile : System.Drawing.Image
[System.Serializable]
public sealed class Metafile : System.Drawing.Image
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Serializable>]
type Metafile = class
    inherit Image
[<System.Serializable>]
type Metafile = class
    inherit Image
Public NotInheritable Class Metafile
Inherits Image
Vererbung
Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine Metafile Methode erstellt und verwendet wird PlayRecord .


using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

// for Marshal.Copy
using System.Runtime.InteropServices; 

public class Form1 : Form
{
    private Metafile metafile1;
    private Graphics.EnumerateMetafileProc metafileDelegate;
    private Point destPoint;
    public Form1()
    {
        metafile1 = new Metafile(@"C:\Test.wmf");
        metafileDelegate = new Graphics.EnumerateMetafileProc(MetafileCallback);
        destPoint = new Point(20, 10);
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        e.Graphics.EnumerateMetafile(metafile1, destPoint, metafileDelegate);
    }
    private bool MetafileCallback(
       EmfPlusRecordType recordType,
       int flags,
       int dataSize,
       IntPtr data,
       PlayRecordCallback callbackData)
    {
        byte[] dataArray = null;
        if (data != IntPtr.Zero)
        {
            // Copy the unmanaged record to a managed byte buffer 
            // that can be used by PlayRecord.
            dataArray = new byte[dataSize];
            Marshal.Copy(data, dataArray, 0, dataSize);
        }

        metafile1.PlayRecord(recordType, flags, dataSize, dataArray);

        return true;
    }

    static void Main()
    {
        Application.Run(new Form1());
    }
}
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Windows.Forms
' for Marshal.Copy
Imports System.Runtime.InteropServices


Public Class Form1
    Inherits Form
    Private metafile1 As Metafile
    Private metafileDelegate As Graphics.EnumerateMetafileProc
    Private destPoint As Point
    
    Public Sub New() 
        metafile1 = New Metafile("C:\test.wmf")
        metafileDelegate = New Graphics.EnumerateMetafileProc(AddressOf MetafileCallback)
        destPoint = New Point(20, 10)
    
    End Sub
    
    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) 
        e.Graphics.EnumerateMetafile(metafile1, destPoint, metafileDelegate)
    
    End Sub
    
    Private Function MetafileCallback(ByVal recordType As _
        EmfPlusRecordType, ByVal flags As Integer, ByVal dataSize As Integer, _
        ByVal data As IntPtr, ByVal callbackData As PlayRecordCallback) As Boolean

        Dim dataArray As Byte() = Nothing
        If data <> IntPtr.Zero Then

            ' Copy the unmanaged record to a managed byte buffer 
            ' that can be used by PlayRecord.
            dataArray = New Byte(dataSize) {}
            Marshal.Copy(data, dataArray, 0, dataSize)
        End If

        metafile1.PlayRecord(recordType, flags, dataSize, dataArray)
        Return True

    End Function
    
    Shared Sub Main() 
        Application.Run(New Form1())
    End Sub

End Class

Hinweise

Wenn Sie die methode Save verwenden, um ein Grafikbild stattdessen als Windows Metadateiformat (WMF) oder EMF-Datei (Enhanced Metafile Format) zu speichern, wird die resultierende Datei stattdessen als PNG-Datei (Portable Network Graphics) gespeichert. Dieses Verhalten tritt auf, da die GDI+-Komponente von .NET Framework keinen Encoder aufweist, mit dem Sie Dateien als WMF- oder .emf-Dateien speichern können.

Note

In .NET 6 und höheren Versionen wird das System.Drawing.Common-Paket, das diesen Typ enthält, nur unter Windows-Betriebssystemen unterstützt. Die Verwendung dieses Typs in plattformübergreifenden Apps führt zu Kompilierungszeitwarnungen und Laufzeit-Ausnahmen. Weitere Informationen finden Sie unter System.Drawing.Common wird nur unter Windows unterstützt.

Konstruktoren

Name Beschreibung
Metafile(IntPtr, Boolean)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Handle.

Metafile(IntPtr, EmfType, String)

Initialisiert eine neue Instanz der Metafile Klasse vom angegebenen Handle in einen Gerätekontext und eine EmfType Aufzählung, die das Format der Metafile. Eine Zeichenfolge kann angegeben werden, um die Datei zu benennen.

Metafile(IntPtr, EmfType)

Initialisiert eine neue Instanz der Metafile Klasse vom angegebenen Handle in einen Gerätekontext und eine EmfType Aufzählung, die das Format der Metafile.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType, String)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, gebunden durch das angegebene Rechteck, das die angegebene Maßeinheit verwendet, und eine EmfType Aufzählung, die das Format der Metafile. Eine Zeichenfolge kann zum Benennen der Datei bereitgestellt werden.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, gebunden durch das angegebene Rechteck, das die angegebene Maßeinheit verwendet, und eine EmfType Aufzählung, die das Format der Metafile.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, die an das angegebene Rechteck gebunden ist, das die angegebene Maßeinheit verwendet.

Metafile(IntPtr, Rectangle)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, die durch das angegebene Rechteck begrenzt ist.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, gebunden durch das angegebene Rechteck, das die angegebene Maßeinheit verwendet, und eine EmfType Aufzählung, die das Format der Metafile. Eine Zeichenfolge kann zum Benennen der Datei bereitgestellt werden.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, gebunden durch das angegebene Rechteck, das die angegebene Maßeinheit verwendet, und eine EmfType Aufzählung, die das Format der Metafile.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, die an das angegebene Rechteck gebunden ist, das die angegebene Maßeinheit verwendet.

Metafile(IntPtr, RectangleF)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, die durch das angegebene Rechteck begrenzt ist.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Handle und einem WmfPlaceableFileHeader. Außerdem kann der deleteWmf Parameter verwendet werden, um das Handle zu löschen, wenn die Metadatei gelöscht wird.

Metafile(IntPtr, WmfPlaceableFileHeader)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Handle und einem WmfPlaceableFileHeader.

Metafile(Stream, IntPtr, EmfType, String)

Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle für einen Gerätekontext und eine EmfType-Aufzählung, die das Format der Metafile angibt. Außerdem kann eine Zeichenfolge, die einen beschreibenden Namen für das neue Metafile enthält, hinzugefügt werden.

Metafile(Stream, IntPtr, EmfType)

Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle für einen Gerätekontext und eine EmfType-Aufzählung, die das Format der Metafile angibt.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String)

Initialisiert eine neue Instanz der klasse Metafile aus dem angegebenen Datenstrom, ein Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. Eine Zeichenfolge, die einen beschreibenden Namen für das neue Metafile enthält, kann hinzugefügt werden.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initialisiert eine neue Instanz der klasse Metafile aus dem angegebenen Datenstrom, ein Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle zu einem Gerätekontext, eine Rectangle-Struktur, die das Rechteck darstellt, das das neue Metafile und die angegebene Maßeinheit begrenzt.

Metafile(Stream, IntPtr, Rectangle)

Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle für einen Gerätekontext und eine Rectangle-Struktur, die das rechteck darstellt, das den neuen Metafile begrenzt.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String)

Initialisiert eine neue Instanz der klasse Metafile aus dem angegebenen Datenstrom, ein Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. Eine Zeichenfolge, die einen beschreibenden Namen für das neue Metafile enthält, kann hinzugefügt werden.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initialisiert eine neue Instanz der klasse Metafile aus dem angegebenen Datenstrom, ein Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle zu einem Gerätekontext, eine RectangleF-Struktur, die das Rechteck darstellt, das das neue Metafile und die angegebene Maßeinheit begrenzt.

Metafile(Stream, IntPtr, RectangleF)

Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle für einen Gerätekontext und eine RectangleF-Struktur, die das rechteck darstellt, das den neuen Metafile begrenzt.

Metafile(Stream, IntPtr)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Datenstrom.

Metafile(Stream)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Datenstrom.

Metafile(String, IntPtr, EmfType, String)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext und einer EmfType Enumeration, die das Format der Metafile angibt. Eine beschreibende Zeichenfolge kann ebenfalls hinzugefügt werden.

Metafile(String, IntPtr, EmfType)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext und einer EmfType Enumeration, die das Format der Metafile angibt.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, ein Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. Eine beschreibende Zeichenfolge kann auch hinzugefügt werden.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, ein Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, String)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext, einer Rectangle-Struktur, die das Rechteck darstellt, das die neue Metafile und die angegebene Maßeinheit begrenzt. Eine beschreibende Zeichenfolge kann auch hinzugefügt werden.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext, einer Rectangle-Struktur, die das Rechteck darstellt, das die neue Metafile und die angegebene Maßeinheit begrenzt.

Metafile(String, IntPtr, Rectangle)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext und einer Rectangle-Struktur, die das Rechteck darstellt, das den neuen Metafile begrenzt.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, ein Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. Eine beschreibende Zeichenfolge kann auch hinzugefügt werden.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, ein Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, String)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext, einer RectangleF-Struktur, die das Rechteck darstellt, das die neue Metafile und die angegebene Maßeinheit begrenzt. Eine beschreibende Zeichenfolge kann auch hinzugefügt werden.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext, einer RectangleF-Struktur, die das Rechteck darstellt, das die neue Metafile und die angegebene Maßeinheit begrenzt.

Metafile(String, IntPtr, RectangleF)

Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext und einer RectangleF-Struktur, die das Rechteck darstellt, das den neuen Metafile begrenzt.

Metafile(String, IntPtr)

Initialisiert eine neue Instanz der Metafile Klasse mit dem angegebenen Dateinamen.

Metafile(String)

Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Dateinamen.

Eigenschaften

Name Beschreibung
Flags

Ruft Attributkennzeichnungen für die Pixeldaten dieser Image.

(Geerbt von Image)
FrameDimensionsList

Ruft ein Array von GUIDs ab, die die Dimensionen von Frames in dieser Image.

(Geerbt von Image)
Height

Ruft die Höhe in Pixel dieser Image.

(Geerbt von Image)
HorizontalResolution

Ruft die horizontale Auflösung in Pixel pro Zoll von diesem Imageab.

(Geerbt von Image)
Palette

Dient zum Abrufen oder Festlegen der Farbpalette, die für diesen ImageBereich verwendet wird.

(Geerbt von Image)
PhysicalDimension

Ruft die Breite und Höhe dieses Bilds ab.

(Geerbt von Image)
PixelFormat

Ruft das Pixelformat für diese Imageab.

(Geerbt von Image)
PropertyIdList

Ruft IDs der In diesem Imagegespeicherten Eigenschaftselemente ab.

(Geerbt von Image)
PropertyItems

Ruft alle Eigenschaftselemente (Teile von Metadaten) ab, die in diesem Imagegespeichert sind.

(Geerbt von Image)
RawFormat

Ruft das Dateiformat dieses Image.

(Geerbt von Image)
Size

Ruft die Breite und Höhe in Pixel dieses Bilds ab.

(Geerbt von Image)
Tag

Dient zum Abrufen oder Festlegen eines Objekts, das zusätzliche Daten zum Bild bereitstellt.

(Geerbt von Image)
VerticalResolution

Ruft die vertikale Auflösung in Pixel pro Zoll von diesem Imageab.

(Geerbt von Image)
Width

Ruft die Breite in Pixeln dieses ImageAb.

(Geerbt von Image)

Methoden

Name Beschreibung
Clone()

Erstellt eine genaue Kopie dieses ImageElements.

(Geerbt von Image)
CreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird.

(Geerbt von MarshalByRefObject)
Dispose()

Gibt alle von diesem ImageRessourcen verwendeten Ressourcen frei.

(Geerbt von Image)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den Image verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

(Geerbt von Image)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetBounds(GraphicsUnit)

Ruft die Grenzen des Bilds in der angegebenen Einheit ab.

(Geerbt von Image)
GetEncoderParameterList(Guid)

Gibt Informationen zu den Parametern zurück, die vom angegebenen Bildgeber unterstützt werden.

(Geerbt von Image)
GetFrameCount(FrameDimension)

Gibt die Anzahl der Frames der angegebenen Dimension zurück.

(Geerbt von Image)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetHenhmetafile()

Gibt einen Windows Handle an einen erweiterten Metafile zurück.

GetLifetimeService()

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetMetafileHeader()

Gibt den MetafileHeader zugeordneten Wert zurück Metafile.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Gibt die MetafileHeader dem angegebenen Zugeordnete Metafilezurück.

GetMetafileHeader(IntPtr)

Gibt die MetafileHeader dem angegebenen Zugeordnete Metafilezurück.

GetMetafileHeader(Stream)

Gibt die MetafileHeader dem angegebenen Zugeordnete Metafilezurück.

GetMetafileHeader(String)

Gibt die MetafileHeader dem angegebenen Zugeordnete Metafilezurück.

GetPropertyItem(Int32)

Ruft das angegebene Eigenschaftselement von diesem Imageab.

(Geerbt von Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Gibt eine Miniaturansicht für dieses ImageZurück.

(Geerbt von Image)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekts.

(Geerbt von MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Gibt einen einzelnen Metadateidatensatz wieder.

RemovePropertyItem(Int32)

Entfernt das angegebene Eigenschaftselement aus diesem Image.

(Geerbt von Image)
RotateFlip(RotateFlipType)

Dreht, kippt oder dreht und kippt die Image.

(Geerbt von Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Speichert dieses Bild im angegebenen Datenstrom mit den angegebenen Encoder- und Bildgeberparametern.

(Geerbt von Image)
Save(Stream, ImageFormat)

Speichert dieses Bild im angegebenen Format im angegebenen Format.

(Geerbt von Image)
Save(String, ImageCodecInfo, EncoderParameters)

Speichert dies Image in der angegebenen Datei mit den angegebenen Encoder- und Bild-Encoder-Parametern.

(Geerbt von Image)
Save(String, ImageFormat)

Speichert dies Image in der angegebenen Datei im angegebenen Format.

(Geerbt von Image)
Save(String)

Speichert dies Image in der angegebenen Datei oder dem angegebenen Datenstrom.

(Geerbt von Image)
SaveAdd(EncoderParameters)

Fügt eine Frame zu der Datei oder dem Datenstrom hinzu, die in einem vorherigen Aufruf der Save Methode angegeben wurde. Verwenden Sie diese Methode, um ausgewählte Frames aus einem Mehrrahmenbild in einem anderen Bild mit mehreren Frames zu speichern.

(Geerbt von Image)
SaveAdd(Image, EncoderParameters)

Fügt eine Frame zu der Datei oder dem Datenstrom hinzu, die in einem vorherigen Aufruf der Save Methode angegeben wurde.

(Geerbt von Image)
SelectActiveFrame(FrameDimension, Int32)

Wählt den rahmen aus, der durch die Dimension und den Index angegeben ist.

(Geerbt von Image)
SetPropertyItem(PropertyItem)

Speichert ein Eigenschaftselement (Metadatenelement) in diesem ImageElement.

(Geerbt von Image)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Füllt eine SerializationInfo mit den Daten auf, die zum Serialisieren des Zielobjekts erforderlich sind.

(Geerbt von Image)

Gilt für: