Metafile Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 |
| 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) |