Metafile Classe

Definição

Define um metaficheiro gráfico. Um metaficheiro contém registos que descrevem uma sequência de operações gráficas que podem ser gravadas (construídas) e reproduzidas (exibidas). Esta classe não é hereditária.

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
Herança
Atributos

Exemplos

O exemplo de código seguinte demonstra como criar um Metafile e usar o PlayRecord método.


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

Observações

Quando utiliza o método Save para guardar uma imagem gráfica como um ficheiro Windows Metafile Format (WMF) ou Enhanced Metafile Format (EMF), o ficheiro resultante é guardado como um ficheiro Portable Network Graphics (PNG). Este comportamento ocorre porque o componente GDI+ do .NET Framework não tem um codificador que possa usar para guardar ficheiros como .wmf ou ficheiros .emf.

Note

No .NET 6 e versões posteriores, o pacote System.Drawing.Common, que inclui esse tipo, só é suportado em sistemas operacionais Windows. O uso deste tipo em aplicações multiplataforma causa avisos em tempo de compilação e exceções em tempo de execução. Para obter mais informações, consulte System.Drawing.Common suportado apenas no Windows.

Construtores

Name Description
Metafile(IntPtr, Boolean)

Inicializa uma nova instância da Metafile classe a partir do handle especificado.

Metafile(IntPtr, EmfType, String)

Inicializa uma nova instância da Metafile classe a partir do handle especificado para um contexto de dispositivo e uma EmfType enumeração que especifica o formato do Metafile. Pode ser fornecida uma cadeia para nomear o ficheiro.

Metafile(IntPtr, EmfType)

Inicializa uma nova instância da Metafile classe a partir do handle especificado para um contexto de dispositivo e uma EmfType enumeração que especifica o formato do Metafile.

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

Inicializa uma nova instância da Metafile classe a partir do contexto do dispositivo especificado, limitada pelo retângulo especificado que utiliza a unidade de medida fornecida, e uma EmfType enumeração que especifica o formato do Metafile. Pode ser fornecida uma string para nomear o ficheiro.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Inicializa uma nova instância da Metafile classe a partir do contexto do dispositivo especificado, limitada pelo retângulo especificado que utiliza a unidade de medida fornecida, e uma EmfType enumeração que especifica o formato do Metafile.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Inicializa uma nova instância da Metafile classe a partir do contexto do dispositivo especificado, limitada pelo retângulo especificado que utiliza a unidade de medida fornecida.

Metafile(IntPtr, Rectangle)

Inicializa uma nova instância da Metafile classe a partir do contexto do dispositivo especificado, limitada pelo retângulo especificado.

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

Inicializa uma nova instância da Metafile classe a partir do contexto do dispositivo especificado, limitada pelo retângulo especificado que utiliza a unidade de medida fornecida, e uma EmfType enumeração que especifica o formato do Metafile. Pode ser fornecida uma string para nomear o ficheiro.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Inicializa uma nova instância da Metafile classe a partir do contexto do dispositivo especificado, limitada pelo retângulo especificado que utiliza a unidade de medida fornecida, e uma EmfType enumeração que especifica o formato do Metafile.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Inicializa uma nova instância da Metafile classe a partir do contexto do dispositivo especificado, limitada pelo retângulo especificado que utiliza a unidade de medida fornecida.

Metafile(IntPtr, RectangleF)

Inicializa uma nova instância da Metafile classe a partir do contexto do dispositivo especificado, limitada pelo retângulo especificado.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Inicializa uma nova instância da Metafile classe a partir do handle especificado e de um WmfPlaceableFileHeader. Além disso, o deleteWmf parâmetro pode ser usado para eliminar o handle quando o metaficheiro é eliminado.

Metafile(IntPtr, WmfPlaceableFileHeader)

Inicializa uma nova instância da Metafile classe a partir do handle especificado e de um WmfPlaceableFileHeader.

Metafile(Stream, IntPtr, EmfType, String)

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle Windows para um contexto de dispositivo e uma enumeração EmfType que especifica o formato do Metafile. Além disso, pode ser adicionada uma cadeia que contenha um nome descritivo para o novo Metafile .

Metafile(Stream, IntPtr, EmfType)

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle Windows para um contexto de dispositivo e uma enumeração EmfType que especifica o formato do Metafile.

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

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que limita o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile. Pode ser adicionada uma cadeia que contenha um nome descritivo para o novo Metafile .

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

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que limita o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle Windows para o contexto de um dispositivo, uma estrutura Rectangle que representa o retângulo que limita o novo Metafile e a unidade de medida fornecida.

Metafile(Stream, IntPtr, Rectangle)

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle de Windows para o contexto de um dispositivo e uma estrutura Rectangle que representa o retângulo que limita o novo Metafile.

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

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que limita o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile. Pode ser adicionada uma cadeia que contenha um nome descritivo para o novo Metafile .

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

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que limita o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle Windows para o contexto de um dispositivo, uma estrutura RectangleF que representa o retângulo que limita o novo Metafile e a unidade de medida fornecida.

Metafile(Stream, IntPtr, RectangleF)

Inicializa uma nova instância da classe Metafile a partir do fluxo de dados especificado, um handle de Windows para o contexto de um dispositivo e uma estrutura RectangleF que representa o retângulo que limita o novo Metafile.

Metafile(Stream, IntPtr)

Inicializa uma nova instância da Metafile classe a partir do fluxo de dados especificado.

Metafile(Stream)

Inicializa uma nova instância da Metafile classe a partir do fluxo de dados especificado.

Metafile(String, IntPtr, EmfType, String)

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle de Windows para um contexto de dispositivo e uma enumeração EmfType que especifica o formato do Metafile. Também pode ser adicionada uma cadeia descritiva.

Metafile(String, IntPtr, EmfType)

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle de Windows para um contexto de dispositivo e uma enumeração EmfType que especifica o formato do Metafile.

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

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle de Windows para o contexto de um dispositivo, uma estrutura Rectangle que representa o retângulo que limita o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile. Também pode ser adicionada uma cadeia descritiva.

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

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle de Windows para o contexto de um dispositivo, uma estrutura Rectangle que representa o retângulo que limita o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile.

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

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle Windows para o contexto de um dispositivo, uma estrutura Rectangle que representa o retângulo que limita o novo Metafile e a unidade de medida fornecida. Também pode ser adicionada uma cadeia descritiva.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle Windows para o contexto de um dispositivo, uma estrutura Rectangle que representa o retângulo que limita o novo Metafile e a unidade de medida fornecida.

Metafile(String, IntPtr, Rectangle)

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle de Windows para o contexto de um dispositivo e uma estrutura Rectangle que representa o retângulo que limita o novo Metafile.

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

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle de Windows para o contexto de um dispositivo, uma estrutura RectangleF que representa o retângulo que limita o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile. Também pode ser adicionada uma cadeia descritiva.

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

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle de Windows para o contexto de um dispositivo, uma estrutura RectangleF que representa o retângulo que limita o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile.

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

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle Windows para o contexto de um dispositivo, uma estrutura RectangleF que representa o retângulo que limita o novo Metafile e a unidade de medida fornecida. Também pode ser adicionada uma cadeia descritiva.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle Windows para o contexto de um dispositivo, uma estrutura RectangleF que representa o retângulo que limita o novo Metafile e a unidade de medida fornecida.

Metafile(String, IntPtr, RectangleF)

Inicializa uma nova instância da classe Metafile com o nome de ficheiro especificado, um handle de Windows para o contexto de um dispositivo e uma estrutura RectangleF que representa o retângulo que limita o novo Metafile.

Metafile(String, IntPtr)

Inicializa uma nova instância da Metafile classe com o nome de ficheiro especificado.

Metafile(String)

Inicializa uma nova instância da Metafile classe a partir do nome do ficheiro especificado.

Propriedades

Name Description
Flags

Obtém flags de atributos para os dados de píxeis deste Image.

(Herdado de Image)
FrameDimensionsList

Obtém um array de GUIDs que representam as dimensões dos frames dentro deste Image.

(Herdado de Image)
Height

Obtém a altura, em pixels, deste Image.

(Herdado de Image)
HorizontalResolution

Obtém a resolução horizontal, em píxeis por polegada, desta Image.

(Herdado de Image)
Palette

Obtém ou define a paleta de cores usada para isto Image.

(Herdado de Image)
PhysicalDimension

Obtém a largura e altura desta imagem.

(Herdado de Image)
PixelFormat

Obtém o formato de píxeis para isto Image.

(Herdado de Image)
PropertyIdList

Obtém IDs dos itens da propriedade armazenados neste Image.

(Herdado de Image)
PropertyItems

Obtém todos os itens de propriedade (metadados) armazenados neste Image.

(Herdado de Image)
RawFormat

Obtém o formato de ficheiro deste Image.

(Herdado de Image)
Size

Obtém a largura e altura, em píxeis, desta imagem.

(Herdado de Image)
Tag

Obtém ou define um objeto que fornece dados adicionais sobre a imagem.

(Herdado de Image)
VerticalResolution

Obtém a resolução vertical, em píxeis por polegada, deste Image.

(Herdado de Image)
Width

Obtém a largura, em pixels, deste Image.

(Herdado de Image)

Métodos

Name Description
Clone()

Cria uma cópia exata deste Image.

(Herdado de Image)
CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Liberta todos os recursos utilizados por este Image.

(Herdado de Image)
Dispose(Boolean)

Liberta os recursos não geridos usados pelo Image e opcionalmente liberta os recursos geridos.

(Herdado de Image)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBounds(GraphicsUnit)

Obtém os limites da imagem na unidade especificada.

(Herdado de Image)
GetEncoderParameterList(Guid)

Devolve informação sobre os parâmetros suportados pelo codificador de imagem especificado.

(Herdado de Image)
GetFrameCount(FrameDimension)

Devolve o número de frames da dimensão especificada.

(Herdado de Image)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetHenhmetafile()

Devolve um handle de Windows a um Metafile melhorado.

GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetMetafileHeader()

Devolve o MetafileHeader associado a este Metafile.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Devolve o MetafileHeader associado ao especificado Metafile.

GetMetafileHeader(IntPtr)

Devolve o MetafileHeader associado ao especificado Metafile.

GetMetafileHeader(Stream)

Devolve o MetafileHeader associado ao especificado Metafile.

GetMetafileHeader(String)

Devolve o MetafileHeader associado ao especificado Metafile.

GetPropertyItem(Int32)

Obtém o item de propriedade especificado a partir deste Image.

(Herdado de Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Devolve uma miniatura para isto Image.

(Herdado de Image)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Reproduz um registo individual de metaficheiro.

RemovePropertyItem(Int32)

Remove o item de propriedade especificado deste Image.

(Herdado de Image)
RotateFlip(RotateFlipType)

Roda, vira ou roda e vira o Image.

(Herdado de Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Guarda esta imagem no fluxo especificado, com os parâmetros do codificador e do codificador de imagem especificados.

(Herdado de Image)
Save(Stream, ImageFormat)

Guarda esta imagem no fluxo especificado no formato especificado.

(Herdado de Image)
Save(String, ImageCodecInfo, EncoderParameters)

Guarda isto Image no ficheiro especificado, com os parâmetros especificados do codificador e do codificador de imagem.

(Herdado de Image)
Save(String, ImageFormat)

Guarda isto Image no ficheiro especificado no formato especificado.

(Herdado de Image)
Save(String)

Guarda isto Image no ficheiro ou stream especificado.

(Herdado de Image)
SaveAdd(EncoderParameters)

Adiciona um frame ao ficheiro ou stream especificado numa chamada anterior ao Save método. Use este método para guardar fotogramas selecionados de uma imagem de múltiplos quadros para outra imagem de múltiplos quadros.

(Herdado de Image)
SaveAdd(Image, EncoderParameters)

Adiciona um frame ao ficheiro ou stream especificado numa chamada anterior ao Save método.

(Herdado de Image)
SelectActiveFrame(FrameDimension, Int32)

Seleciona o referencial especificado pela dimensão e índice.

(Herdado de Image)
SetPropertyItem(PropertyItem)

Armazena um item de propriedade (metadado) neste Image.

(Herdado de Image)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Preenche a SerializationInfo com os dados necessários para serializar o objeto alvo.

(Herdado de Image)

Aplica-se a