Metafile Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define um metafile gráfico. Um metafile contém registros que descrevem uma sequência de operações gráficas que podem ser gravadas (construídas) e reproduzidas (exibidas). Essa classe não é herdável.
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 a seguir demonstra como criar e Metafile 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
Comentários
Quando você usa o método Save para salvar uma imagem gráfica como um arquivo WMF (Formato de Metafile Windows) ou EMF (Formato de Metafile Avançado), o arquivo resultante é salvo como um arquivo PNG (Portable Network Graphics). Esse comportamento ocorre porque o componente GDI+ do .NET Framework não tem um codificador que você pode usar para salvar arquivos como arquivos .wmf ou .emf.
Note
No .NET 6 e versões posteriores, o pacote System.Drawing.Common, que inclui esse tipo, só tem suporte em sistemas operacionais Windows. O uso desse tipo em aplicativos multiplataforma causa avisos de tempo de compilação e exceções em tempo de execução. Para obter mais informações, consulte System.Drawing.Common com suporte apenas no Windows.
Construtores
| Nome | Description |
|---|---|
| Metafile(IntPtr, Boolean) |
Inicializa uma nova instância da classe do Metafile identificador especificado. |
| Metafile(IntPtr, EmfType, String) |
Inicializa uma nova instância da classe do Metafile identificador especificado para um contexto de dispositivo e uma EmfType enumeração que especifica o formato do Metafile. Uma cadeia de caracteres pode ser fornecida para nomear o arquivo. |
| Metafile(IntPtr, EmfType) |
Inicializa uma nova instância da classe do Metafile identificador 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 classe do Metafile contexto do dispositivo especificado, delimitado pelo retângulo especificado que usa a unidade de medida fornecida e uma EmfType enumeração que especifica o formato do Metafile. Uma cadeia de caracteres pode ser fornecida para nomear o arquivo. |
| Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicializa uma nova instância da classe do Metafile contexto do dispositivo especificado, delimitado pelo retângulo especificado que usa 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 classe do Metafile contexto do dispositivo especificado, limitado pelo retângulo especificado que usa a unidade de medida fornecida. |
| Metafile(IntPtr, Rectangle) |
Inicializa uma nova instância da classe do Metafile contexto do dispositivo especificado, limitado pelo retângulo especificado. |
| Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicializa uma nova instância da classe do Metafile contexto do dispositivo especificado, delimitado pelo retângulo especificado que usa a unidade de medida fornecida e uma EmfType enumeração que especifica o formato do Metafile. Uma cadeia de caracteres pode ser fornecida para nomear o arquivo. |
| Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicializa uma nova instância da classe do Metafile contexto do dispositivo especificado, delimitado pelo retângulo especificado que usa 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 classe do Metafile contexto do dispositivo especificado, limitado pelo retângulo especificado que usa a unidade de medida fornecida. |
| Metafile(IntPtr, RectangleF) |
Inicializa uma nova instância da classe do Metafile contexto do dispositivo especificado, limitado pelo retângulo especificado. |
| Metafile(IntPtr, WmfPlaceableFileHeader, Boolean) |
Inicializa uma nova instância da classe do Metafile identificador especificado e de um WmfPlaceableFileHeader. Além disso, o |
| Metafile(IntPtr, WmfPlaceableFileHeader) |
Inicializa uma nova instância da classe do Metafile identificador especificado e de um WmfPlaceableFileHeader. |
| Metafile(Stream, IntPtr, EmfType, String) |
Inicializa uma nova instância da classe Metafile do fluxo de dados especificado, um identificador de Windows para um contexto de dispositivo e uma enumeração EmfType que especifica o formato do Metafile. Além disso, uma cadeia de caracteres que contém um nome descritivo para o novo Metafile pode ser adicionada. |
| Metafile(Stream, IntPtr, EmfType) |
Inicializa uma nova instância da classe Metafile do fluxo de dados especificado, um identificador de 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 do fluxo de dados especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que associa o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile. Uma cadeia de caracteres que contém um nome descritivo para o novo Metafile pode ser adicionada. |
| Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicializa uma nova instância da classe Metafile do fluxo de dados especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que associa 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 do fluxo de dados especificado, um identificador Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que vincula o novo Metafile e a unidade de medida fornecida. |
| Metafile(Stream, IntPtr, Rectangle) |
Inicializa uma nova instância da classe Metafile do fluxo de dados especificado, um identificador de Windows para um contexto de dispositivo e uma estrutura Rectangle que representa o retângulo que associa o novo Metafile. |
| Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicializa uma nova instância da classe Metafile do fluxo de dados especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que associa o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile. Uma cadeia de caracteres que contém um nome descritivo para o novo Metafile pode ser adicionada. |
| Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicializa uma nova instância da classe Metafile do fluxo de dados especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que associa 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 do fluxo de dados especificado, um identificador Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que vincula o novo Metafile e a unidade de medida fornecida. |
| Metafile(Stream, IntPtr, RectangleF) |
Inicializa uma nova instância da classe Metafile do fluxo de dados especificado, um identificador de Windows para um contexto de dispositivo e uma estrutura RectangleF que representa o retângulo que associa o novo Metafile. |
| Metafile(Stream, IntPtr) |
Inicializa uma nova instância da classe do Metafile fluxo de dados especificado. |
| Metafile(Stream) |
Inicializa uma nova instância da classe do Metafile fluxo de dados especificado. |
| Metafile(String, IntPtr, EmfType, String) |
Inicializa uma nova instância da classe Metafile com o nome de arquivo especificado, um identificador de Windows para um contexto de dispositivo e uma enumeração EmfType que especifica o formato do Metafile. Uma cadeia de caracteres descritiva também pode ser adicionada. |
| Metafile(String, IntPtr, EmfType) |
Inicializa uma nova instância da classe Metafile com o nome de arquivo especificado, um identificador 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 do arquivo especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que associa o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile. Uma cadeia de caracteres descritiva também pode ser adicionada. |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicializa uma nova instância da classe Metafile com o nome do arquivo especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que associa 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 do arquivo especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que vincula o novo Metafile e a unidade de medida fornecida. Uma cadeia de caracteres descritiva também pode ser adicionada. |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit) |
Inicializa uma nova instância da classe Metafile com o nome do arquivo especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura Rectangle que representa o retângulo que vincula 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 arquivo especificado, um identificador de Windows para um contexto de dispositivo e uma estrutura Rectangle que representa o retângulo que associa o novo Metafile. |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicializa uma nova instância da classe Metafile com o nome do arquivo especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que associa o novo Metafile, a unidade de medida fornecida e uma enumeração EmfType que especifica o formato do Metafile. Uma cadeia de caracteres descritiva também pode ser adicionada. |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicializa uma nova instância da classe Metafile com o nome do arquivo especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que associa 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 do arquivo especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que vincula o novo Metafile e a unidade de medida fornecida. Uma cadeia de caracteres descritiva também pode ser adicionada. |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit) |
Inicializa uma nova instância da classe Metafile com o nome do arquivo especificado, um identificador de Windows para um contexto de dispositivo, uma estrutura RectangleF que representa o retângulo que vincula 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 arquivo especificado, um identificador de Windows para um contexto de dispositivo e uma estrutura RectangleF que representa o retângulo que associa o novo Metafile. |
| Metafile(String, IntPtr) |
Inicializa uma nova instância da Metafile classe com o nome do arquivo especificado. |
| Metafile(String) |
Inicializa uma nova instância da classe do Metafile nome do arquivo especificado. |
Propriedades
| Nome | Description |
|---|---|
| Flags |
Obtém sinalizadores de atributo para os dados de pixel deste Image. (Herdado de Image) |
| FrameDimensionsList |
Obtém uma matriz de GUIDs que representam as dimensões dos quadros 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 pixels por polegada, deste Image. (Herdado de Image) |
| Palette |
Obtém ou define a paleta de cores usada para isso Image. (Herdado de Image) |
| PhysicalDimension |
Obtém a largura e a altura dessa imagem. (Herdado de Image) |
| PixelFormat |
Obtém o formato de pixel para este Image. (Herdado de Image) |
| PropertyIdList |
Obtém IDs dos itens de propriedade armazenados neste Image. (Herdado de Image) |
| PropertyItems |
Obtém todos os itens de propriedade (partes de metadados) armazenados neste Image. (Herdado de Image) |
| RawFormat |
Obtém o formato de arquivo deste Image. (Herdado de Image) |
| Size |
Obtém a largura e a altura, em pixels, dessa 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 pixels por polegada, deste Image. (Herdado de Image) |
| Width |
Obtém a largura, em pixels, deste Image. (Herdado de Image) |
Métodos
| Nome | Description |
|---|---|
| Clone() |
Cria uma cópia exata disso Image. (Herdado de Image) |
| CreateObjRef(Type) |
Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Dispose() |
Libera todos os recursos usados por isso Image. (Herdado de Image) |
| Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo Image e, opcionalmente, libera os recursos gerenciados. (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) |
Retorna informações sobre os parâmetros compatíveis com o codificador de imagem especificado. (Herdado de Image) |
| GetFrameCount(FrameDimension) |
Retorna o número de quadros da dimensão especificada. (Herdado de Image) |
| GetHashCode() |
Serve como a função hash predefinida. (Herdado de Object) |
| GetHenhmetafile() |
Retorna um identificador de Windows para um Metafile aprimorado. |
| GetLifetimeService() |
Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
| GetMetafileHeader() |
Retorna o MetafileHeader associado a este Metafile. |
| GetMetafileHeader(IntPtr, WmfPlaceableFileHeader) |
Retorna o MetafileHeader associado ao especificado Metafile. |
| GetMetafileHeader(IntPtr) |
Retorna o MetafileHeader associado ao especificado Metafile. |
| GetMetafileHeader(Stream) |
Retorna o MetafileHeader associado ao especificado Metafile. |
| GetMetafileHeader(String) |
Retorna 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) |
Retorna uma miniatura para isso Image. (Herdado de Image) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InitializeLifetimeService() |
Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[]) |
Reproduz um registro de metafile individual. |
| RemovePropertyItem(Int32) |
Remove o item de propriedade especificado deste Image. (Herdado de Image) |
| RotateFlip(RotateFlipType) |
Gira, inverte ou gira e inverte o Image. (Herdado de Image) |
| Save(Stream, ImageCodecInfo, EncoderParameters) |
Salva essa imagem no fluxo especificado, com os parâmetros de codificador e codificador de imagem especificados. (Herdado de Image) |
| Save(Stream, ImageFormat) |
Salva essa imagem no fluxo especificado no formato especificado. (Herdado de Image) |
| Save(String, ImageCodecInfo, EncoderParameters) |
Salva isso Image no arquivo especificado, com os parâmetros de codificador e codificador de imagem especificados. (Herdado de Image) |
| Save(String, ImageFormat) |
Salva isso Image no arquivo especificado no formato especificado. (Herdado de Image) |
| Save(String) |
Salva isso Image no arquivo ou fluxo especificado. (Herdado de Image) |
| SaveAdd(EncoderParameters) |
Adiciona um quadro ao arquivo ou fluxo especificado em uma chamada anterior ao Save método. Use esse método para salvar quadros selecionados de uma imagem de vários quadros em outra imagem de vários quadros. (Herdado de Image) |
| SaveAdd(Image, EncoderParameters) |
Adiciona um quadro ao arquivo ou fluxo especificado em uma chamada anterior ao Save método. (Herdado de Image) |
| SelectActiveFrame(FrameDimension, Int32) |
Seleciona o quadro especificado pela dimensão e pelo índice. (Herdado de Image) |
| SetPropertyItem(PropertyItem) |
Armazena um item de propriedade (parte dos metadados) neste Image. (Herdado de Image) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Popula um SerializationInfo com os dados necessários para serializar o objeto de destino. (Herdado de Image) |