Sdílet prostřednictvím


Metafile Třída

Definice

Definuje grafický metasoubor. Metasoubor obsahuje záznamy popisující posloupnost grafických operací, které lze zaznamenat (vytvořit) a přehrát (zobrazit). Tato třída není zděděná.

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
Dědičnost
Atributy

Příklady

Následující příklad kódu ukazuje, jak vytvořit Metafile a použít PlayRecord metoda.


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

Poznámky

Pokud použijete metodu Save k uložení grafického obrázku jako souboru WMF (Windows Metafile Format) nebo EMF (Enhanced Metafile Format), výsledný soubor se uloží jako soubor PNG (Portable Network Graphics). K tomuto chování dochází, protože komponenta GDI+ rozhraní .NET Framework nemá kodér, který můžete použít k ukládání souborů jako .wmf nebo .emf souborů.

Poznámka

V .NET 6 a novějších verzích je balíček System.Drawing.Common, který zahrnuje tento typ, podporován pouze v operačních systémech Windows. Použití tohoto typu v multiplatformních aplikacích způsobuje upozornění v době kompilace a výjimky za běhu. Další informace naleznete v tématu System.Drawing.Common podporován pouze v systému Windows.

Konstruktory

Metafile(IntPtr, Boolean)

Inicializuje novou instanci Metafile třídy ze zadaného popisovače.

Metafile(IntPtr, EmfType, String)

Inicializuje novou instanci třídy Metafile ze zadaného popisovače do kontextu zařízení a EmfType výčtu, který určuje formát Metafile. Řetězec lze zadat k pojmenování souboru.

Metafile(IntPtr, EmfType)

Inicializuje novou instanci třídy Metafile ze zadaného popisovače do kontextu zařízení a EmfType výčtu, který určuje formát Metafile.

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

Inicializuje novou instanci třídy Metafile ze zadaného kontextu zařízení ohraničeného zadaným obdélníkem, který používá zadanou jednotku měření, a EmfType výčet, který určuje formát Metafile. Řetězec lze zadat k pojmenování souboru.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Inicializuje novou instanci třídy Metafile ze zadaného kontextu zařízení ohraničeného zadaným obdélníkem, který používá zadanou jednotku měření, a EmfType výčet, který určuje formát Metafile.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Inicializuje novou instanci třídy Metafile ze zadaného kontextu zařízení ohraničeného zadaným obdélníkem, který používá zadanou jednotku měření.

Metafile(IntPtr, Rectangle)

Inicializuje novou instanci třídy Metafile ze zadaného kontextu zařízení ohraničeného zadaným obdélníkem.

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

Inicializuje novou instanci třídy Metafile ze zadaného kontextu zařízení ohraničeného zadaným obdélníkem, který používá zadanou jednotku měření, a EmfType výčet, který určuje formát Metafile. Řetězec lze zadat k pojmenování souboru.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Inicializuje novou instanci třídy Metafile ze zadaného kontextu zařízení ohraničeného zadaným obdélníkem, který používá zadanou jednotku měření, a EmfType výčet, který určuje formát Metafile.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Inicializuje novou instanci třídy Metafile ze zadaného kontextu zařízení ohraničeného zadaným obdélníkem, který používá zadanou jednotku měření.

Metafile(IntPtr, RectangleF)

Inicializuje novou instanci třídy Metafile ze zadaného kontextu zařízení ohraničeného zadaným obdélníkem.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Inicializuje novou instanci třídy Metafile ze zadaného popisovače a WmfPlaceableFileHeader. Parametr deleteWmf lze také použít k odstranění popisovače při odstranění metasouboru.

Metafile(IntPtr, WmfPlaceableFileHeader)

Inicializuje novou instanci třídy Metafile ze zadaného popisovače a WmfPlaceableFileHeader.

Metafile(Stream, IntPtr, EmfType, String)

Inicializuje novou instanci Metafile třídy ze zadaného datového proudu, popisovač Windows do kontextu zařízení a EmfType výčet, který určuje formát Metafile. Můžete také přidat řetězec, který obsahuje popisný název nového Metafile.

Metafile(Stream, IntPtr, EmfType)

Inicializuje novou instanci Metafile třídy ze zadaného datového proudu, popisovač Windows do kontextu zařízení a EmfType výčet, který určuje formát Metafile.

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

Inicializuje novou instanci třídy Metafile ze zadaného datového streamu, popisovač Windows do kontextu zařízení, Rectangle strukturu, která představuje obdélník, který ohraničuje novou Metafile, zadanou jednotku míry a EmfType výčet, který určuje formát Metafile. Lze přidat řetězec, který obsahuje popisný název nového Metafile.

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

Inicializuje novou instanci třídy Metafile ze zadaného datového streamu, popisovač Windows do kontextu zařízení, Rectangle strukturu, která představuje obdélník, který ohraničuje novou Metafile, zadanou jednotku míry a EmfType výčet, který určuje formát Metafile.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Inicializuje novou instanci třídy Metafile ze zadaného datového proudu, obslužný rutina Windows do kontextu zařízení, Rectangle strukturu, která představuje obdélník, který ohraničuje novou Metafilea zadanou jednotku měření.

Metafile(Stream, IntPtr, Rectangle)

Inicializuje novou instanci třídy Metafile ze zadaného datového proudu, popisovač Windows do kontextu zařízení a Rectangle strukturu, která představuje obdélník, který ohraničuje nový Metafile.

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

Inicializuje novou instanci třídy Metafile ze zadaného datového streamu, popisovač Windows do kontextu zařízení, RectangleF strukturu, která představuje obdélník, který ohraničuje novou Metafile, zadanou jednotku míry a EmfType výčet, který určuje formát Metafile. Lze přidat řetězec, který obsahuje popisný název nového Metafile.

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

Inicializuje novou instanci třídy Metafile ze zadaného datového streamu, popisovač Windows do kontextu zařízení, RectangleF strukturu, která představuje obdélník, který ohraničuje novou Metafile, zadanou jednotku míry a EmfType výčet, který určuje formát Metafile.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Inicializuje novou instanci třídy Metafile ze zadaného datového proudu, obslužný rutina Windows do kontextu zařízení, RectangleF strukturu, která představuje obdélník, který ohraničuje novou Metafilea zadanou jednotku měření.

Metafile(Stream, IntPtr, RectangleF)

Inicializuje novou instanci třídy Metafile ze zadaného datového proudu, popisovač Windows do kontextu zařízení a RectangleF strukturu, která představuje obdélník, který ohraničuje nový Metafile.

Metafile(Stream, IntPtr)

Inicializuje novou instanci třídy Metafile ze zadaného datového proudu.

Metafile(Stream)

Inicializuje novou instanci třídy Metafile ze zadaného datového proudu.

Metafile(String, IntPtr, EmfType, String)

Inicializuje novou instanci třídy Metafile se zadaným názvem souboru, popisovačem Windows do kontextu zařízení a EmfType výčtem, který určuje formát Metafile. Můžete také přidat popisný řetězec.

Metafile(String, IntPtr, EmfType)

Inicializuje novou instanci třídy Metafile se zadaným názvem souboru, popisovačem Windows do kontextu zařízení a EmfType výčtem, který určuje formát Metafile.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows kontextu zařízení, Rectangle struktury, která představuje obdélník, který ohraničuje novou Metafile, zadanou jednotku míry a EmfType výčtu určující formát Metafile. Můžete také přidat popisný řetězec.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows kontextu zařízení, Rectangle struktury, která představuje obdélník, který ohraničuje novou Metafile, zadanou jednotku míry a EmfType výčtu určující formát Metafile.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows do kontextu zařízení, Rectangle struktury, která představuje obdélník, který ohraničuje nový Metafilea zadanou jednotku měření. Můžete také přidat popisný řetězec.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows do kontextu zařízení, Rectangle struktury, která představuje obdélník, který ohraničuje nový Metafilea zadanou jednotku měření.

Metafile(String, IntPtr, Rectangle)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows do kontextu zařízení a Rectangle struktury, která představuje obdélník, který ohraničuje nový Metafile.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows kontextu zařízení, RectangleF struktury, která představuje obdélník, který ohraničuje novou Metafile, zadanou jednotku míry a EmfType výčtu určující formát Metafile. Můžete také přidat popisný řetězec.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows kontextu zařízení, RectangleF struktury, která představuje obdélník, který ohraničuje novou Metafile, zadanou jednotku míry a EmfType výčtu určující formát Metafile.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows do kontextu zařízení, RectangleF struktury, která představuje obdélník, který ohraničuje nový Metafilea zadanou jednotku měření. Můžete také přidat popisný řetězec.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows do kontextu zařízení, RectangleF struktury, která představuje obdélník, který ohraničuje nový Metafilea zadanou jednotku měření.

Metafile(String, IntPtr, RectangleF)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovač Windows do kontextu zařízení a RectangleF struktury, která představuje obdélník, který ohraničuje nový Metafile.

Metafile(String, IntPtr)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru.

Metafile(String)

Inicializuje novou instanci třídy Metafile ze zadaného názvu souboru.

Vlastnosti

Flags

Získá příznaky atributů pro pixelová data tohoto Image.

(Zděděno od Image)
FrameDimensionsList

Získá pole identifikátorů GUID, které představují rozměry rámců v tomto Image.

(Zděděno od Image)
Height

Získá výšku v pixelech tohoto Image.

(Zděděno od Image)
HorizontalResolution

Získá vodorovné rozlišení v pixelech na paleč tohoto Image.

(Zděděno od Image)
Palette

Získá nebo nastaví barevnou paletu použitou pro tuto Image.

(Zděděno od Image)
PhysicalDimension

Získá šířku a výšku tohoto obrázku.

(Zděděno od Image)
PixelFormat

Získá formát pixelů pro tento Image.

(Zděděno od Image)
PropertyIdList

Získá ID položek vlastnosti uložené v tomto Image.

(Zděděno od Image)
PropertyItems

Získá všechny položky vlastnosti (části metadat) uložené v tomto Image.

(Zděděno od Image)
RawFormat

Získá formát souboru tohoto Image.

(Zděděno od Image)
Size

Získá šířku a výšku tohoto obrázku v pixelech.

(Zděděno od Image)
Tag

Získá nebo nastaví objekt, který poskytuje další data o obrázku.

(Zděděno od Image)
VerticalResolution

Získá svislé rozlišení v pixelech na paleč tohoto Image.

(Zděděno od Image)
Width

Získá šířku v pixelech tohoto Image.

(Zděděno od Image)

Metody

Clone()

Vytvoří přesnou kopii tohoto Image.

(Zděděno od Image)
CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
Dispose()

Uvolní všechny prostředky používané tímto Image.

(Zděděno od Image)
Dispose(Boolean)

Uvolní nespravované prostředky používané Image a volitelně uvolní spravované prostředky.

(Zděděno od Image)
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetBounds(GraphicsUnit)

Získá hranice obrázku v zadané jednotce.

(Zděděno od Image)
GetEncoderParameterList(Guid)

Vrátí informace o parametrech podporovaných zadaným kodérem obrázků.

(Zděděno od Image)
GetFrameCount(FrameDimension)

Vrátí početsnímkůchchchch

(Zděděno od Image)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetHenhmetafile()

Vrátí úchyt systému Windows do rozšířeného Metafile.

GetLifetimeService()
Zastaralé.

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
GetMetafileHeader()

Vrátí MetafileHeader přidružené k tomuto Metafile.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Vrátí MetafileHeader přidružené k zadanému Metafile.

GetMetafileHeader(IntPtr)

Vrátí MetafileHeader přidružené k zadanému Metafile.

GetMetafileHeader(Stream)

Vrátí MetafileHeader přidružené k zadanému Metafile.

GetMetafileHeader(String)

Vrátí MetafileHeader přidružené k zadanému Metafile.

GetPropertyItem(Int32)

Získá zadanou položku vlastnosti z tohoto Image.

(Zděděno od Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Vrátí miniaturu pro tento Image.

(Zděděno od Image)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního objektu MarshalByRefObject.

(Zděděno od MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Přehraje jednotlivý záznam metasouboru.

RemovePropertyItem(Int32)

Odebere zadanou položku vlastnosti z tohoto Image.

(Zděděno od Image)
RotateFlip(RotateFlipType)

Otočí, překlopí nebo otočí a překlopí Image.

(Zděděno od Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Uloží tento obrázek do zadaného datového proudu se zadanými parametry kodéru a kodéru obrázků.

(Zděděno od Image)
Save(Stream, ImageFormat)

Uloží tento obrázek do zadaného datového proudu v zadaném formátu.

(Zděděno od Image)
Save(String, ImageCodecInfo, EncoderParameters)

Uloží tento Image do zadaného souboru se zadanými parametry kodéru a kodéru obrázků.

(Zděděno od Image)
Save(String, ImageFormat)

Uloží tento Image do zadaného souboru v zadaném formátu.

(Zděděno od Image)
Save(String)

Uloží tento Image do zadaného souboru nebo datového proudu.

(Zděděno od Image)
SaveAdd(EncoderParameters)

Přidá rámeček do souboru nebo datového proudu zadaného v předchozím volání metody Save. Tato metoda slouží k uložení vybraných snímků z obrázku s více snímky do jiného obrázku s více snímky.

(Zděděno od Image)
SaveAdd(Image, EncoderParameters)

Přidá rámeček do souboru nebo datového proudu zadaného v předchozím volání metody Save.

(Zděděno od Image)
SelectActiveFrame(FrameDimension, Int32)

Vybere rámeček určený dimenzí a indexem.

(Zděděno od Image)
SetPropertyItem(PropertyItem)

Ukládá položku vlastnosti (část metadat) v tomto Image.

(Zděděno od Image)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Naplní SerializationInfo daty potřebnými k serializaci cílového objektu.

(Zděděno od Image)

Platí pro