Metafile Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define un metarchivo gráfico. Un metarchivo contiene registros que describen una secuencia de operaciones de gráficos que se pueden grabar (construir) y reproducir (se muestran). Esta clase no se puede heredar.
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
- Herencia
- Atributos
Ejemplos
En el ejemplo de código siguiente se muestra cómo crear y Metafile usar el 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
Comentarios
Cuando se usa el método Save para guardar una imagen gráfica como un archivo de formato de metarchivo de Windows (WMF) o formato de metarchivo mejorado (EMF), el archivo resultante se guarda como un archivo Portable Network Graphics (PNG) en su lugar. Este comportamiento se produce porque el componente GDI+ de .NET Framework no tiene un codificador que puede usar para guardar archivos como archivos .wmf o .emf.
Note
En .NET 6 y versiones posteriores, el paquete System.Drawing.Common, que incluye este tipo, solo se admite en sistemas operativos Windows. El uso de este tipo en aplicaciones multiplataforma provoca advertencias en tiempo de compilación y excepciones en tiempo de ejecución. Para obtener más información, consulte System.Drawing.Common only supported on Windows (Solo se admite System.Drawing.Common en Windows).
Constructores
| Nombre | Description |
|---|---|
| Metafile(IntPtr, Boolean) |
Inicializa una nueva instancia de la Metafile clase a partir del identificador especificado. |
| Metafile(IntPtr, EmfType, String) |
Inicializa una nueva instancia de la Metafile clase del identificador especificado en un contexto de dispositivo y una EmfType enumeración que especifica el formato de Metafile. Se puede proporcionar una cadena para asignar un nombre al archivo. |
| Metafile(IntPtr, EmfType) |
Inicializa una nueva instancia de la Metafile clase del identificador especificado en un contexto de dispositivo y una EmfType enumeración que especifica el formato de Metafile. |
| Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inicializa una nueva instancia de la Metafile clase a partir del contexto de dispositivo especificado, enlazado por el rectángulo especificado que usa la unidad de medida proporcionada y una EmfType enumeración que especifica el formato de Metafile. Se puede proporcionar una cadena para asignar un nombre al archivo. |
| Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicializa una nueva instancia de la Metafile clase a partir del contexto de dispositivo especificado, enlazado por el rectángulo especificado que usa la unidad de medida proporcionada y una EmfType enumeración que especifica el formato de Metafile. |
| Metafile(IntPtr, Rectangle, MetafileFrameUnit) |
Inicializa una nueva instancia de la Metafile clase a partir del contexto de dispositivo especificado, enlazado por el rectángulo especificado que usa la unidad de medida proporcionada. |
| Metafile(IntPtr, Rectangle) |
Inicializa una nueva instancia de la Metafile clase desde el contexto de dispositivo especificado, enlazado por el rectángulo especificado. |
| Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicializa una nueva instancia de la Metafile clase a partir del contexto de dispositivo especificado, enlazado por el rectángulo especificado que usa la unidad de medida proporcionada y una EmfType enumeración que especifica el formato de Metafile. Se puede proporcionar una cadena para asignar un nombre al archivo. |
| Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicializa una nueva instancia de la Metafile clase a partir del contexto de dispositivo especificado, enlazado por el rectángulo especificado que usa la unidad de medida proporcionada y una EmfType enumeración que especifica el formato de Metafile. |
| Metafile(IntPtr, RectangleF, MetafileFrameUnit) |
Inicializa una nueva instancia de la Metafile clase a partir del contexto de dispositivo especificado, enlazado por el rectángulo especificado que usa la unidad de medida proporcionada. |
| Metafile(IntPtr, RectangleF) |
Inicializa una nueva instancia de la Metafile clase desde el contexto de dispositivo especificado, enlazado por el rectángulo especificado. |
| Metafile(IntPtr, WmfPlaceableFileHeader, Boolean) |
Inicializa una nueva instancia de la Metafile clase a partir del identificador especificado y un WmfPlaceableFileHeader. Además, el |
| Metafile(IntPtr, WmfPlaceableFileHeader) |
Inicializa una nueva instancia de la Metafile clase a partir del identificador especificado y un WmfPlaceableFileHeader. |
| Metafile(Stream, IntPtr, EmfType, String) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(Stream, IntPtr, EmfType) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inicializa una nueva instancia de la clase Metafile desde el flujo de datos especificado, un Windows identificador de un contexto de dispositivo, una estructura Rectangle que representa el rectángulo que enlaza el nuevo Metafile, la unidad de medida proporcionada y una enumeración EmfType que especifica el formato del Metafile. Se puede agregar una cadena que contiene un nombre descriptivo para el nuevo Metafile . |
| Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicializa una nueva instancia de la clase Metafile desde el flujo de datos especificado, un Windows identificador de un contexto de dispositivo, una estructura Rectangle que representa el rectángulo que enlaza el nuevo Metafile, la unidad de medida proporcionada y una enumeración EmfType que especifica el formato del Metafile. |
| Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(Stream, IntPtr, Rectangle) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicializa una nueva instancia de la clase Metafile desde el flujo de datos especificado, un Windows identificador de un contexto de dispositivo, una estructura RectangleF que representa el rectángulo que enlaza el nuevo Metafile, la unidad de medida proporcionada y una enumeración EmfType que especifica el formato del Metafile. Se puede agregar una cadena que contiene un nombre descriptivo para el nuevo Metafile . |
| Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicializa una nueva instancia de la clase Metafile desde el flujo de datos especificado, un Windows identificador de un contexto de dispositivo, una estructura RectangleF que representa el rectángulo que enlaza el nuevo Metafile, la unidad de medida proporcionada y una enumeración EmfType que especifica el formato del Metafile. |
| Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(Stream, IntPtr, RectangleF) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(Stream, IntPtr) |
Inicializa una nueva instancia de la Metafile clase a partir del flujo de datos especificado. |
| Metafile(Stream) |
Inicializa una nueva instancia de la Metafile clase a partir del flujo de datos especificado. |
| Metafile(String, IntPtr, EmfType, String) |
Inicializa una nueva instancia de la clase /Metafile con el nombre de archivo especificado, un identificador de Windows a un contexto de dispositivo y una enumeración EmfType que especifica el formato del Metafile. También se puede agregar una cadena descriptiva. |
| Metafile(String, IntPtr, EmfType) |
Inicializa una nueva instancia de la clase /Metafile con el nombre de archivo especificado, un identificador de Windows a un contexto de dispositivo y una enumeración EmfType que especifica el formato del Metafile. |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inicializa una nueva instancia de la clase Metafile con el nombre de archivo especificado, un identificador de Windows a un contexto de dispositivo, una estructura Rectangle que representa el rectángulo que enlaza el nuevo Metafile, la unidad de medida proporcionada y una enumeración EmfType que especifica el formato del Metafile. También se puede agregar una cadena descriptiva. |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicializa una nueva instancia de la clase Metafile con el nombre de archivo especificado, un identificador de Windows a un contexto de dispositivo, una estructura Rectangle que representa el rectángulo que enlaza el nuevo Metafile, la unidad de medida proporcionada y una enumeración EmfType que especifica el formato del Metafile. |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, String) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(String, IntPtr, Rectangle) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicializa una nueva instancia de la clase Metafile con el nombre de archivo especificado, un identificador de Windows a un contexto de dispositivo, una estructura RectangleF que representa el rectángulo que enlaza el nuevo Metafile, la unidad de medida proporcionada y una enumeración EmfType que especifica el formato del Metafile. También se puede agregar una cadena descriptiva. |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicializa una nueva instancia de la clase Metafile con el nombre de archivo especificado, un identificador de Windows a un contexto de dispositivo, una estructura RectangleF que representa el rectángulo que enlaza el nuevo Metafile, la unidad de medida proporcionada y una enumeración EmfType que especifica el formato del Metafile. |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, String) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(String, IntPtr, RectangleF) |
Inicializa una nueva instancia de la clase /> de |
| Metafile(String, IntPtr) |
Inicializa una nueva instancia de la Metafile clase con el nombre de archivo especificado. |
| Metafile(String) |
Inicializa una nueva instancia de la Metafile clase a partir del nombre de archivo especificado. |
Propiedades
| Nombre | Description |
|---|---|
| Flags |
Obtiene marcas de atributo para los datos de píxeles de este Imageobjeto . (Heredado de Image) |
| FrameDimensionsList |
Obtiene una matriz de GUID que representan las dimensiones de los marcos de este Imageobjeto . (Heredado de Image) |
| Height |
Obtiene el alto, en píxeles, de este Imageobjeto . (Heredado de Image) |
| HorizontalResolution |
Obtiene la resolución horizontal, en píxeles por pulgada, de este Imageobjeto . (Heredado de Image) |
| Palette |
Obtiene o establece la paleta de colores utilizada para este Imageobjeto . (Heredado de Image) |
| PhysicalDimension |
Obtiene el ancho y el alto de esta imagen. (Heredado de Image) |
| PixelFormat |
Obtiene el formato de píxel para este Imageobjeto . (Heredado de Image) |
| PropertyIdList |
Obtiene los identificadores de los elementos de propiedad almacenados en este Image. (Heredado de Image) |
| PropertyItems |
Obtiene todos los elementos de propiedad (fragmentos de metadatos) almacenados en este Imageobjeto . (Heredado de Image) |
| RawFormat |
Obtiene el formato de archivo de este Imageobjeto . (Heredado de Image) |
| Size |
Obtiene el ancho y el alto, en píxeles, de esta imagen. (Heredado de Image) |
| Tag |
Obtiene o establece un objeto que proporciona datos adicionales sobre la imagen. (Heredado de Image) |
| VerticalResolution |
Obtiene la resolución vertical, en píxeles por pulgada, de este Imageobjeto . (Heredado de Image) |
| Width |
Obtiene el ancho, en píxeles, de este Imageobjeto . (Heredado de Image) |
Métodos
| Nombre | Description |
|---|---|
| Clone() |
Crea una copia exacta de este Imageobjeto . (Heredado de Image) |
| CreateObjRef(Type) |
Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto. (Heredado de MarshalByRefObject) |
| Dispose() |
Libera todos los recursos usados por este Image. (Heredado de Image) |
| Dispose(Boolean) |
Libera los recursos no administrados utilizados por Image y, opcionalmente, libera los recursos administrados. (Heredado de Image) |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetBounds(GraphicsUnit) |
Obtiene los límites de la imagen en la unidad especificada. (Heredado de Image) |
| GetEncoderParameterList(Guid) |
Devuelve información sobre los parámetros admitidos por el codificador de imágenes especificado. (Heredado de Image) |
| GetFrameCount(FrameDimension) |
Devuelve el número de fotogramas de la dimensión especificada. (Heredado de Image) |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetHenhmetafile() |
Devuelve un identificador de Windows a un |
| GetLifetimeService() |
Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Heredado de MarshalByRefObject) |
| GetMetafileHeader() |
Devuelve el MetafileHeader objeto asociado a este Metafileobjeto . |
| GetMetafileHeader(IntPtr, WmfPlaceableFileHeader) |
Devuelve el MetafileHeader asociado al objeto especificado Metafile. |
| GetMetafileHeader(IntPtr) |
Devuelve el MetafileHeader asociado al objeto especificado Metafile. |
| GetMetafileHeader(Stream) |
Devuelve el MetafileHeader asociado al objeto especificado Metafile. |
| GetMetafileHeader(String) |
Devuelve el MetafileHeader asociado al objeto especificado Metafile. |
| GetPropertyItem(Int32) |
Obtiene el elemento de propiedad especificado de este Imageobjeto . (Heredado de Image) |
| GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr) |
Devuelve una miniatura para este Imageobjeto . (Heredado de Image) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| InitializeLifetimeService() |
Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Heredado de MarshalByRefObject) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| MemberwiseClone(Boolean) |
Crea una copia superficial del objeto actual MarshalByRefObject . (Heredado de MarshalByRefObject) |
| PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[]) |
Reproduce un registro de metarchivo individual. |
| RemovePropertyItem(Int32) |
Quita el elemento de propiedad especificado de este Image. (Heredado de Image) |
| RotateFlip(RotateFlipType) |
Gira, voltea o gira y voltea el Imageobjeto . (Heredado de Image) |
| Save(Stream, ImageCodecInfo, EncoderParameters) |
Guarda esta imagen en la secuencia especificada, con los parámetros de codificador y codificador de imágenes especificados. (Heredado de Image) |
| Save(Stream, ImageFormat) |
Guarda esta imagen en la secuencia especificada en el formato especificado. (Heredado de Image) |
| Save(String, ImageCodecInfo, EncoderParameters) |
Guarda esto Image en el archivo especificado, con los parámetros especificados encoder y image-encoder. (Heredado de Image) |
| Save(String, ImageFormat) |
Lo Image guarda en el archivo especificado en el formato especificado. (Heredado de Image) |
| Save(String) |
Guarda esto Image en el archivo o secuencia especificados. (Heredado de Image) |
| SaveAdd(EncoderParameters) |
Agrega un marco al archivo o secuencia especificado en una llamada anterior al Save método . Use este método para guardar fotogramas seleccionados de una imagen de varios fotogramas en otra imagen de varios fotogramas. (Heredado de Image) |
| SaveAdd(Image, EncoderParameters) |
Agrega un marco al archivo o secuencia especificado en una llamada anterior al Save método . (Heredado de Image) |
| SelectActiveFrame(FrameDimension, Int32) |
Selecciona el marco especificado por la dimensión y el índice. (Heredado de Image) |
| SetPropertyItem(PropertyItem) |
Almacena un elemento de propiedad (fragmento de metadatos) en este Image. (Heredado de Image) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Rellena con SerializationInfo los datos necesarios para serializar el objeto de destino. (Heredado de Image) |