Sdílet prostřednictvím


Metafile Třída

Definice

Definuje grafický metasoubor. Metasoubor obsahuje záznamy, které popisují posloupnost grafických operací, které lze zaznamenat (vytvořit) a přehrát (zobrazit). Tuto třídu nelze dědit.

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

Příklady

Následující příklad kódu ukazuje, jak vytvořit Metafile a použít metodu 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

Poznámky

Pokud použijete metodu Save k uložení grafického obrázku jako soubor WMF (Windows Metafile Format) nebo EMF (Enhanced Metafile Format), výsledný soubor se místo toho uloží jako soubor PNG (Portable Network Graphics). K tomuto chování dochází, protože komponenta GDI+ rozhraní .NET Framework nemá kodér, který lze 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ý obsahuje 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í při kompilaci a výjimky za běhu. Další informace najdete v tématu System.Drawing.Common podporované pouze ve Windows.

Konstruktory

Metafile(IntPtr, Boolean)

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

Metafile(IntPtr, EmfType)

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

Metafile(IntPtr, EmfType, String)

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

Metafile(IntPtr, Rectangle)

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

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

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

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

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

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

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

Metafile(IntPtr, RectangleF)

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

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

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

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

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

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

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

Metafile(IntPtr, WmfPlaceableFileHeader)

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

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

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

Metafile(Stream)

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

Metafile(Stream, IntPtr)

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

Metafile(Stream, IntPtr, EmfType)

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

Metafile(Stream, IntPtr, EmfType, String)

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

Metafile(Stream, IntPtr, Rectangle)

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

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

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

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

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

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

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

Metafile(Stream, IntPtr, RectangleF)

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

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

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

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

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

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

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

Metafile(String)

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

Metafile(String, IntPtr)

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

Metafile(String, IntPtr, EmfType)

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

Metafile(String, IntPtr, EmfType, String)

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

Metafile(String, IntPtr, Rectangle)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows pro kontext zařízení a strukturou Rectangle , která představuje obdélník, který ohraničuje nový Metafileobjekt .

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows kontextu zařízení, strukturou Rectangle , která představuje obdélník ohraničuje nový Metafile, a zadanou měrnou jednotkou.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows pro kontext zařízení, strukturou Rectangle , která představuje obdélník ohraničuje novou Metafile, zadanou měrnou jednotku EmfType a výčet, který určuje formát objektu Metafile.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows pro kontext zařízení, strukturou Rectangle , která představuje obdélník ohraničuje novou Metafile, zadanou měrnou jednotku EmfType a výčet, který určuje formát objektu Metafile. Můžete také přidat popisný řetězec.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows kontextu zařízení, strukturou Rectangle , která představuje obdélník ohraničuje nový Metafile, a zadanou měrnou jednotkou. Můžete také přidat popisný řetězec.

Metafile(String, IntPtr, RectangleF)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows pro kontext zařízení a strukturou RectangleF , která představuje obdélník, který ohraničuje nový Metafileobjekt .

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows kontextu zařízení, strukturou RectangleF , která představuje obdélník ohraničuje nový Metafile, a zadanou měrnou jednotkou.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows pro kontext zařízení, strukturou RectangleF , která představuje obdélník ohraničuje novou Metafile, zadanou měrnou jednotku EmfType a výčet, který určuje formát objektu Metafile.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows pro kontext zařízení, strukturou RectangleF , která představuje obdélník ohraničuje novou Metafile, zadanou měrnou jednotku EmfType a výčet, který určuje formát objektu Metafile. Můžete také přidat popisný řetězec.

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

Inicializuje novou instanci Metafile třídy se zadaným názvem souboru, popisovačem systému Windows kontextu zařízení, strukturou RectangleF , která představuje obdélník ohraničuje nový Metafile, a zadanou měrnou jednotkou. Můžete také přidat popisný řetězec.

Vlastnosti

Flags

Získá příznaky atributu pro pixel data tohoto Image.

(Zděděno od Image)
FrameDimensionsList

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

(Zděděno od Image)
Height

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

(Zděděno od Image)
HorizontalResolution

Získá vodorovné rozlišení v pixelech na paleci tohoto Imageobjektu .

(Zděděno od Image)
Palette

Získá nebo nastaví paletu barev použitou pro tento Imageobjekt .

(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 vlastností uložených v tomto Imagesouboru .

(Zděděno od Image)
PropertyItems

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

(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 v pixelech tohoto obrázku.

(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 paleci tohoto Imageobjektu .

(Zděděno od Image)
Width

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

(Zděděno od Image)

Metody

Clone()

Vytvoří přesnou kopii tohoto Imageobjektu .

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

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

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

Uvolní všechny prostředky používané tímto Imagenástrojem .

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

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

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

Určí, zda se zadaný objekt rovná 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ázku.

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

Vrátí počet snímků zadané dimenze.

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

Slouží jako výchozí hashovací funkce.

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

Vrátí popisovač windows rozšířeného Metafileobjektu .

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í hodnotu přidruženou MetafileHeader k tomuto Metafile.

GetMetafileHeader(IntPtr)

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

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

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

GetMetafileHeader(Stream)

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

GetMetafileHeader(String)

Vrátí hodnotu přidruženou MetafileHeader k zadanému Metafileparametru .

GetPropertyItem(Int32)

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

(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á aktuální Type instanci.

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

Získá objekt služby životnosti, který řídí zásady životnosti pro tuto instanci.

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

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

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

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

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

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

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

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

Uloží ho 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ží soubor Image do zadaného souboru v zadaném formátu.

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

Přidá rámec do souboru nebo datového proudu zadaného v předchozím volání Save metody . Tuto metodu použijte 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ámec do souboru nebo datového proudu zadaného v předchozím volání Save metody .

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

Vybere rámeček určený rozměrem a indexem.

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

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

(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 objekt daty potřebnými k serializaci cílového objektu.

(Zděděno od Image)

Platí pro