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 de graphiques qui peuvent être enregistrées (construites) et lues (affichées). Cette classe n'est pas héritable.

public ref class Metafile sealed : System::Drawing::Image
public sealed class Metafile : 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
type Metafile = class
    inherit Image
[<System.Serializable>]
type Metafile = class
    inherit Image
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(false)>]
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 PlayRecord méthode .


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 Save méthode pour enregistrer une image graphique en tant que fichier WMF (Windows Metafile Format) ou EMF (Enhanced Metafile Format), le fichier résultant est enregistré en tant que fichier PNG (Portable Network Graphics). Ce comportement se produit parce que 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.

Notes

Dans .NET 6 et versions ultérieures, le package System.Drawing.Common, qui inclut ce type, est uniquement pris en charge sur les systèmes d’exploitation Windows. L’utilisation de ce type dans les applications multiplateformes entraîne des avertissements au moment de la compilation et des exceptions au moment de l’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)

Initialise une nouvelle instance de la classe Metafile à partir du handle spécifié d'un contexte de périphérique (DC) et d'une énumération EmfType qui spécifie le format du Metafile.

Metafile(IntPtr, EmfType, String)

Initialise une nouvelle instance de la classe Metafile à partir du handle spécifié d'un contexte de périphérique (DC) et d'une énumération EmfType qui spécifie le format du Metafile. Une chaîne peut être fournie pour nommer le fichier.

Metafile(IntPtr, Rectangle)

Initialise une nouvelle instance de la classe Metafile à partir du contexte de périphérique (DC) spécifié, limité par le rectangle spécifié.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile à partir du contexte de périphérique (DC) spécifié, limité par le rectangle spécifié qui utilise l'unité de mesure spécifiée.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initialise une nouvelle instance de la classe Metafile à partir du contexte de périphérique (DC) spécifié, délimité par le rectangle spécifié qui utilise l'unité de mesure spécifiée 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 de périphérique (DC) spécifié, délimité par le rectangle spécifié qui utilise l'unité de mesure spécifiée 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)

Initialise une nouvelle instance de la classe Metafile à partir du contexte de périphérique (DC) spécifié, limité par le rectangle spécifié.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile à partir du contexte de périphérique (DC) spécifié, limité par le rectangle spécifié qui utilise l'unité de mesure spécifiée.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initialise une nouvelle instance de la classe Metafile à partir du contexte de périphérique (DC) spécifié, délimité par le rectangle spécifié qui utilise l'unité de mesure spécifiée et une énumération EmfType qui spécifie le format du Metafile.

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

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

Metafile(IntPtr, WmfPlaceableFileHeader)

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

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

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

Metafile(Stream)

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

Metafile(Stream, IntPtr)

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

Metafile(Stream, IntPtr, EmfType)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC) et une énumération EmfType qui spécifie le format du Metafile.

Metafile(Stream, IntPtr, EmfType, String)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC) et une énumération EmfType qui spécifie le format du Metafile. De même, une chaîne qui contient un nom descriptif pour le nouveau Metafile peut être ajoutée.

Metafile(Stream, IntPtr, Rectangle)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure Rectangle qui représente le rectangle qui délimite le nouveau Metafile.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC), une structure Rectangle qui représente le rectangle qui délimite le nouveau Metafile et l'unité de mesure fournie.

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

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure Rectangle qui représente le rectangle qui dé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, EmfType, String)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure Rectangle qui représente le rectangle qui dé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 le nouveau Metafile peut être ajoutée.

Metafile(Stream, IntPtr, RectangleF)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure RectangleF qui représente le rectangle qui délimite le nouveau Metafile.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC), une structure RectangleF qui représente le rectangle qui délimite le nouveau Metafile et l'unité de mesure fournie.

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

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure RectangleF qui représente le rectangle qui dé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, EmfType, String)

Initialise une nouvelle instance de la classe Metafile à partir du flux de données spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure RectangleF qui représente le rectangle qui dé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 le nouveau Metafile peut être ajoutée.

Metafile(String)

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

Metafile(String, IntPtr)

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

Metafile(String, IntPtr, EmfType)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC) et une énumération EmfType qui spécifie le format du Metafile.

Metafile(String, IntPtr, EmfType, String)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC) 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)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure Rectangle qui représente le rectangle qui délimite le nouveau Metafile.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC), une structure Rectangle qui représente le rectangle qui délimite le nouveau Metafile et l'unité de mesure fournie.

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

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure Rectangle qui représente le rectangle qui délimite le nouveau Metafile, l'unité de mesure fournie 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 d'un contexte de périphérique (DC) et une structure Rectangle qui représente le rectangle qui délimite le nouveau 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, String)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC), une structure Rectangle qui représente le rectangle qui délimite le nouveau Metafile et l'unité de mesure fournie. Une chaîne descriptive peut également être ajoutée.

Metafile(String, IntPtr, RectangleF)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure RectangleF qui représente le rectangle qui délimite le nouveau Metafile.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC), une structure RectangleF qui représente le rectangle qui délimite le nouveau Metafile et l'unité de mesure fournie.

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

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC) et une structure RectangleF qui représente le rectangle qui délimite le nouveau Metafile, l'unité de mesure fournie et une énumération EmfType qui spécifie le format du 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 d'un contexte de périphérique (DC) et une structure RectangleF qui représente le rectangle qui délimite le nouveau 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, String)

Initialise une nouvelle instance de la classe Metafile avec le nom de fichier spécifié, un handle Windows d'un contexte de périphérique (DC), une structure RectangleF qui représente le rectangle qui délimite le nouveau Metafile et l'unité de mesure fournie. Une chaîne descriptive peut également être ajoutée.

Propriétés

Flags

Obtient des indicateurs d'attribut pour les données de pixels de ce Image.

(Hérité de Image)
FrameDimensionsList

Obtient un tableau de GUID qui représentent les dimensions des frames dans ce Image.

(Hérité de Image)
Height

Obtient la hauteur, en pixels, de cet objet Image.

(Hérité de Image)
HorizontalResolution

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

(Hérité de Image)
Palette

Obtient ou définit la palette de couleurs de ce 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 de ce Image.

(Hérité de Image)
PropertyIdList

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

(Hérité de Image)
PropertyItems

Obtient tous les éléments de propriété (métadonnées) stockés dans ce 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 de cette image en pixels.

(Hérité de Image)
Tag

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

(Hérité de Image)
VerticalResolution

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

(Hérité de Image)
Width

Obtient la largeur, en pixels, de cet objet Image.

(Hérité de Image)

Méthodes

Clone()

Crée une copie exacte de Image.

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

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

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

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

Libère les ressources non managées utilisées par 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 de frames de la dimension spécifiée.

(Hérité de Image)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetHenhmetafile()

Retourne un handle Windows d'un Metafile amélioré.

GetLifetimeService()
Obsolète.

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

(Hérité de MarshalByRefObject)
GetMetafileHeader()

Retourne l'objet MetafileHeader associé à cet objet Metafile.

GetMetafileHeader(IntPtr)

Retourne le MetafileHeader associé au Metafile spécifié.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Retourne le MetafileHeader associé au Metafile spécifié.

GetMetafileHeader(Stream)

Retourne le MetafileHeader associé au Metafile spécifié.

GetMetafileHeader(String)

Retourne le MetafileHeader associé au Metafile spécifié.

GetPropertyItem(Int32)

Obtient l'élément de propriété spécifié à partir de ce Image.

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

Retourne la miniature de ce Image.

(Hérité de Image)
GetType()

Obtient le 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 Object actuel.

(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.

RemovePropertyItem(Int32)

Supprime l'élément de propriété spécifié de ce Image.

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

Fait pivoter ou retourne Image, ou le fait pivoter en le retournant.

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

Enregistre cette image dans le flux spécifié, avec l'encodeur et les paramètres d'encodeur d'image définis.

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

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

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

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

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

Enregistre ce Image dans le fichier spécifié, avec l'encodeur et les paramètres d'encodeur d'image définis.

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

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

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

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

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

Ajoute un frame 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 frame spécifié par la dimension et l'index.

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

Stocke un élément de propriété (métadonnées) dans cet objet 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 SerializationInfo avec les données nécessaires pour sérialiser l'objet cible.

(Hérité de Image)

S’applique à