Partager via


Metafile Classe

Définition

Définit un métafichier graphique. Un métafichier contient des enregistrements qui décrivent une séquence d’opérations graphiques qui peuvent être enregistrées (construites) et lues (affichées). Cette classe n’est pas héritée.

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

Exemples

L’exemple de code suivant montre comment créer un Metafile et utiliser la méthode 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

Remarques

Lorsque vous utilisez la méthode Save pour enregistrer une image graphique en tant que fichier WMF (Windows Metafile Format) ou EMF (Enhanced Metafile Format), le fichier résultant est enregistré sous la forme d’un fichier PNG (Portable Network Graphics). Ce comportement se produit, car le composant GDI+ du .NET Framework n’a pas d’encodeur que vous pouvez utiliser pour enregistrer des fichiers en tant que fichiers .wmf ou .emf.

Note

Dans .NET 6 et versions ultérieures, le package System.Drawing.Common, qui inclut ce type, n’est pris en charge que sur les systèmes d’exploitation Windows. L’utilisation de ce type dans les applications multiplateformes provoque des avertissements au moment de la compilation et des exceptions d’exécution. Pour plus d’informations, consultez System.Drawing.Common uniquement pris en charge sur Windows.

Constructeurs

Metafile(IntPtr, Boolean)

Initialise une nouvelle instance de la classe Metafile à partir du handle spécifié.

Metafile(IntPtr, EmfType, String)

Initialise une nouvelle instance de la classe Metafile du handle spécifié vers un contexte d’appareil et une énumération EmfType qui spécifie le format du Metafile. Une chaîne peut être fournie pour nommer le fichier.

Metafile(IntPtr, EmfType)

Initialise une nouvelle instance de la classe Metafile du handle spécifié vers un contexte d’appareil et une énumération EmfType qui spécifie le format du Metafile.

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

Initialise une nouvelle instance de la classe Metafile à partir du contexte d’appareil spécifié, limitée par le rectangle spécifié qui utilise l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile. Une chaîne peut être fournie pour nommer le fichier.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initialise une nouvelle instance de la classe Metafile à partir du contexte d’appareil spécifié, limitée par le rectangle spécifié qui utilise l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile à partir du contexte d’appareil spécifié, limitée par le rectangle spécifié qui utilise l’unité de mesure fournie.

Metafile(IntPtr, Rectangle)

Initialise une nouvelle instance de la classe Metafile à partir du contexte d’appareil spécifié, limitée par le rectangle spécifié.

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

Initialise une nouvelle instance de la classe Metafile à partir du contexte d’appareil spécifié, limitée par le rectangle spécifié qui utilise l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile. Une chaîne peut être fournie pour nommer le fichier.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initialise une nouvelle instance de la classe Metafile à partir du contexte d’appareil spécifié, limitée par le rectangle spécifié qui utilise l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile à partir du contexte d’appareil spécifié, limitée par le rectangle spécifié qui utilise l’unité de mesure fournie.

Metafile(IntPtr, RectangleF)

Initialise une nouvelle instance de la classe Metafile à partir du contexte d’appareil spécifié, limitée par le rectangle spécifié.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Initialise une nouvelle instance de la classe Metafile à partir du handle spécifié et d’un WmfPlaceableFileHeader. En outre, le paramètre deleteWmf peut être utilisé pour supprimer le handle lorsque le métafichier est supprimé.

Metafile(IntPtr, WmfPlaceableFileHeader)

Initialise une nouvelle instance de la classe Metafile à partir du handle spécifié et d’un WmfPlaceableFileHeader.

Metafile(Stream, IntPtr, EmfType, String)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil et d’une énumération EmfType qui spécifie le format du Metafile. En outre, une chaîne qui contient un nom descriptif pour la nouvelle Metafile peut être ajoutée.

Metafile(Stream, IntPtr, EmfType)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil et d’une énumération EmfType qui spécifie le format du Metafile.

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

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil, d’une structure Rectangle qui représente le rectangle qui limite le nouveau Metafile, l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile. Une chaîne qui contient un nom descriptif pour la nouvelle Metafile peut être ajoutée.

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

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil, d’une structure Rectangle qui représente le rectangle qui limite le nouveau Metafile, l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil, d’une structure Rectangle qui représente le rectangle qui limite le nouveau Metafileet l’unité de mesure fournie.

Metafile(Stream, IntPtr, Rectangle)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil et d’une structure Rectangle qui représente le rectangle qui limite le nouveau Metafile.

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

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil, d’une structure RectangleF qui représente le rectangle qui limite le nouveau Metafile, l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile. Une chaîne qui contient un nom descriptif pour la nouvelle Metafile peut être ajoutée.

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

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil, d’une structure RectangleF qui représente le rectangle qui limite le nouveau Metafile, l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil, d’une structure RectangleF qui représente le rectangle qui limite le nouveau Metafileet l’unité de mesure fournie.

Metafile(Stream, IntPtr, RectangleF)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, d’un handle Windows vers un contexte d’appareil et d’une structure RectangleF qui représente le rectangle qui limite le nouveau Metafile.

Metafile(Stream, IntPtr)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié.

Metafile(Stream)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié.

Metafile(String, IntPtr, EmfType, String)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil et une énumération EmfType qui spécifie le format du Metafile. Une chaîne descriptive peut également être ajoutée.

Metafile(String, IntPtr, EmfType)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil et une énumération EmfType qui spécifie le format du Metafile.

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

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil, une structure Rectangle qui représente le rectangle qui limite le nouvel Metafile, l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile. Une chaîne descriptive peut également être ajoutée.

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

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil, une structure Rectangle qui représente le rectangle qui limite le nouvel Metafile, l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile.

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

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil, une structure Rectangle qui représente le rectangle qui limite le nouveau Metafileet l’unité de mesure fournie. Une chaîne descriptive peut également être ajoutée.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil, une structure Rectangle qui représente le rectangle qui limite le nouveau Metafileet l’unité de mesure fournie.

Metafile(String, IntPtr, Rectangle)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil et une structure Rectangle qui représente le rectangle qui limite la nouvelle Metafile.

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

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil, une structure RectangleF qui représente le rectangle qui limite le nouvel Metafile, l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile. Une chaîne descriptive peut également être ajoutée.

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

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil, une structure RectangleF qui représente le rectangle qui limite le nouvel Metafile, l’unité de mesure fournie et une énumération EmfType qui spécifie le format du Metafile.

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

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil, une structure RectangleF qui représente le rectangle qui limite le nouveau Metafileet l’unité de mesure fournie. Une chaîne descriptive peut également être ajoutée.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil, une structure RectangleF qui représente le rectangle qui limite le nouveau Metafileet l’unité de mesure fournie.

Metafile(String, IntPtr, RectangleF)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows vers un contexte d’appareil et une structure RectangleF qui représente le rectangle qui limite la nouvelle Metafile.

Metafile(String, IntPtr)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié.

Metafile(String)

Initialise une nouvelle instance de la classe Metafile à partir du nom de fichier spécifié.

Propriétés

Flags

Obtient des indicateurs d’attribut pour les données de pixels de cette Image.

(Hérité de Image)
FrameDimensionsList

Obtient un tableau de GUID qui représentent les dimensions des images dans cette Image.

(Hérité de Image)
Height

Obtient la hauteur, en pixels, de cette Image.

(Hérité de Image)
HorizontalResolution

Obtient la résolution horizontale, en pixels par pouce, de cette Image.

(Hérité de Image)
Palette

Obtient ou définit la palette de couleurs utilisée pour cette Image.

(Hérité de Image)
PhysicalDimension

Obtient la largeur et la hauteur de cette image.

(Hérité de Image)
PixelFormat

Obtient le format de pixel pour cette Image.

(Hérité de Image)
PropertyIdList

Obtient les ID des éléments de propriété stockés dans cette Image.

(Hérité de Image)
PropertyItems

Obtient tous les éléments de propriété (éléments de métadonnées) stockés dans cette Image.

(Hérité de Image)
RawFormat

Obtient le format de fichier de cette Image.

(Hérité de Image)
Size

Obtient la largeur et la hauteur, en pixels, de cette image.

(Hérité de Image)
Tag

Obtient ou définit un objet qui fournit des données supplémentaires sur l’image.

(Hérité de Image)
VerticalResolution

Obtient la résolution verticale, en pixels par pouce, de cette Image.

(Hérité de Image)
Width

Obtient la largeur, en pixels, de cette Image.

(Hérité de Image)

Méthodes

Clone()

Crée une copie exacte de cette Image.

(Hérité de Image)
CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

Libère toutes les ressources utilisées par cette Image.

(Hérité de Image)
Dispose(Boolean)

Libère les ressources non managées utilisées par le Image et libère éventuellement les ressources managées.

(Hérité de Image)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetBounds(GraphicsUnit)

Obtient les limites de l’image dans l’unité spécifiée.

(Hérité de Image)
GetEncoderParameterList(Guid)

Retourne des informations sur les paramètres pris en charge par l’encodeur d’image spécifié.

(Hérité de Image)
GetFrameCount(FrameDimension)

Retourne le nombre d’images de la dimension spécifiée.

(Hérité de Image)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetHenhmetafile()

Retourne un handle Windows à une Metafileaméliorée.

GetLifetimeService()
Obsolète.

Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetMetafileHeader()

Retourne la MetafileHeader associée à cette Metafile.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Retourne le MetafileHeader associé au Metafilespécifié.

GetMetafileHeader(IntPtr)

Retourne le MetafileHeader associé au Metafilespécifié.

GetMetafileHeader(Stream)

Retourne le MetafileHeader associé au Metafilespécifié.

GetMetafileHeader(String)

Retourne le MetafileHeader associé au Metafilespécifié.

GetPropertyItem(Int32)

Obtient l’élément de propriété spécifié à partir de cette Image.

(Hérité de Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Retourne une miniature pour cette Image.

(Hérité de Image)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l’objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Lit un enregistrement de métafichier individuel.

RemovePropertyItem(Int32)

Supprime l’élément de propriété spécifié de cette Image.

(Hérité de Image)
RotateFlip(RotateFlipType)

Fait pivoter, retourner ou faire pivoter et retourner la Image.

(Hérité de Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Enregistre cette image dans le flux spécifié, avec les paramètres d’encodeur et d’encodeur d’image spécifiés.

(Hérité de Image)
Save(Stream, ImageFormat)

Enregistre cette image dans le flux spécifié au format spécifié.

(Hérité de Image)
Save(String, ImageCodecInfo, EncoderParameters)

Enregistre cette Image dans le fichier spécifié, avec les paramètres d’encodeur et d’encodeur d’image spécifiés.

(Hérité de Image)
Save(String, ImageFormat)

Enregistre cette Image dans le fichier spécifié au format spécifié.

(Hérité de Image)
Save(String)

Enregistre cette Image dans le fichier ou le flux spécifié.

(Hérité de Image)
SaveAdd(EncoderParameters)

Ajoute un cadre au fichier ou au flux spécifié dans un appel précédent à la méthode Save. Utilisez cette méthode pour enregistrer les images sélectionnées d’une image à plusieurs images dans une autre image à plusieurs images.

(Hérité de Image)
SaveAdd(Image, EncoderParameters)

Ajoute un cadre au fichier ou au flux spécifié dans un appel précédent à la méthode Save.

(Hérité de Image)
SelectActiveFrame(FrameDimension, Int32)

Sélectionne le cadre spécifié par la dimension et l’index.

(Hérité de Image)
SetPropertyItem(PropertyItem)

Stocke un élément de propriété (élément de métadonnées) dans cette Image.

(Hérité de Image)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Remplit une SerializationInfo avec les données nécessaires pour sérialiser l’objet cible.

(Hérité de Image)

S’applique à