Metafile Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Definiuje metaplik graficzny. Metaplik zawiera rekordy opisujące sekwencję operacji graficznych, które mogą być rejestrowane (konstruowane) i odtwarzane (wyświetlane). Ta klasa nie jest dziedziczona.
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
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie kodu pokazano, jak utworzyć metodę Metafile i użyć jej 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
Uwagi
Jeśli używasz Save metody do zapisywania obrazu graficznego jako pliku Windows Metafile Format (WMF) lub Enhanced Metafile Format (EMF), wynikowy plik jest zapisywany jako plik Portable Network Graphics (PNG). To zachowanie występuje, ponieważ składnik GDI+ .NET Framework nie ma kodera, którego można użyć do zapisywania plików jako plików wmf lub .emf.
Uwaga
W programie .NET 6 i nowszych wersjach pakiet System.Drawing.Common, który obejmuje ten typ, jest obsługiwany tylko w systemach operacyjnych Windows. Użycie tego typu w aplikacjach międzyplatformowych powoduje ostrzeżenia w czasie kompilacji i wyjątki czasu wykonywania. Aby uzyskać więcej informacji, zobacz System.Drawing.Common only supported on Windows (Obsługiwane tylko w systemie Windows).
Konstruktory
Metafile(IntPtr, Boolean) |
Inicjuje Metafile nowe wystąpienie klasy z określonego uchwytu. |
Metafile(IntPtr, EmfType) |
Inicjuje Metafile nowe wystąpienie klasy z określonego uchwytu do kontekstu urządzenia i EmfType wyliczenie określające format klasy Metafile. |
Metafile(IntPtr, EmfType, String) |
Inicjuje Metafile nowe wystąpienie klasy z określonego uchwytu do kontekstu urządzenia i EmfType wyliczenie określające format klasy Metafile. Ciąg można podać, aby nazwać plik. |
Metafile(IntPtr, Rectangle) |
Inicjuje Metafile nowe wystąpienie klasy z określonego kontekstu urządzenia, powiązane z określonym prostokątem. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit) |
Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary, oraz EmfType wyliczenie określające format Metafileelementu . |
Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary, oraz EmfType wyliczenie określające format Metafileelementu . Ciąg można podać, aby nazwać plik. |
Metafile(IntPtr, RectangleF) |
Inicjuje Metafile nowe wystąpienie klasy z określonego kontekstu urządzenia, powiązane z określonym prostokątem. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit) |
Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary, oraz EmfType wyliczenie określające format Metafileelementu . |
Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary, oraz EmfType wyliczenie określające format Metafileelementu . Ciąg można podać, aby nazwać plik. |
Metafile(IntPtr, WmfPlaceableFileHeader) |
Inicjuje Metafile nowe wystąpienie klasy z określonego uchwytu i .WmfPlaceableFileHeader |
Metafile(IntPtr, WmfPlaceableFileHeader, Boolean) |
Inicjuje Metafile nowe wystąpienie klasy z określonego uchwytu i .WmfPlaceableFileHeader |
Metafile(Stream) |
Inicjuje Metafile nowe wystąpienie klasy z określonego strumienia danych. |
Metafile(Stream, IntPtr) |
Inicjuje Metafile nowe wystąpienie klasy z określonego strumienia danych. |
Metafile(Stream, IntPtr, EmfType) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia i EmfType wyliczenie określające format elementu Metafile. |
Metafile(Stream, IntPtr, EmfType, String) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia i EmfType wyliczenie określające format elementu Metafile. Ponadto można dodać ciąg zawierający opisową nazwę nowego Metafile . |
Metafile(Stream, IntPtr, Rectangle) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia i strukturę reprezentującą Rectangle prostokąt powiązany z nowym Metafile. |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt, który graniczy z nową Metafilejednostką miary . |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt związany z nową Metafilejednostką miary oraz EmfType wyliczenie określające format Metafile. |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt związany z nową Metafilejednostką miary oraz EmfType wyliczenie określające format Metafile. Można dodać ciąg zawierający opisową nazwę nowego Metafile . |
Metafile(Stream, IntPtr, RectangleF) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia i strukturę reprezentującą RectangleF prostokąt powiązany z nowym Metafile. |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt, który graniczy z nową Metafilejednostką miary . |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt związany z nową Metafilejednostką miary oraz EmfType wyliczenie określające format Metafile. |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt systemu Windows do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt związany z nową Metafilejednostką miary oraz EmfType wyliczenie określające format Metafile. Można dodać ciąg zawierający opisową nazwę nowego Metafile . |
Metafile(String) |
Inicjuje Metafile nowe wystąpienie klasy z określonej nazwy pliku. |
Metafile(String, IntPtr) |
Inicjuje Metafile nowe wystąpienie klasy o określonej nazwie pliku. |
Metafile(String, IntPtr, EmfType) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, dojściu systemu Windows do kontekstu urządzenia i EmfType wyliczenie określające format elementu Metafile. |
Metafile(String, IntPtr, EmfType, String) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, dojściu systemu Windows do kontekstu urządzenia i EmfType wyliczenie określające format elementu Metafile. Można również dodać opisowy ciąg. |
Metafile(String, IntPtr, Rectangle) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, dojściu systemu Windows do kontekstu urządzenia oraz strukturę reprezentującą Rectangle prostokąt powiązany z nowym Metafile. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, dojście systemu Windows do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt, który wiąże nową Metafilejednostkę miary i podaną jednostkę miary. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, uchwyt systemu Windows do kontekstu urządzenia, strukturę reprezentującą prostokąt związany z nową Metafilejednostką Rectangle miary oraz EmfType wyliczenie określające format Metafileklasy . |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, uchwyt systemu Windows do kontekstu urządzenia, strukturę reprezentującą prostokąt związany z nową Metafilejednostką Rectangle miary oraz EmfType wyliczenie określające format Metafileklasy . Można również dodać ciąg opisowy. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, String) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, dojście systemu Windows do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt, który wiąże nową Metafilejednostkę miary i podaną jednostkę miary. Można również dodać ciąg opisowy. |
Metafile(String, IntPtr, RectangleF) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, dojściu systemu Windows do kontekstu urządzenia oraz strukturę reprezentującą RectangleF prostokąt powiązany z nowym Metafile. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, dojście systemu Windows do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt, który wiąże nową Metafilejednostkę miary i podaną jednostkę miary. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, uchwyt systemu Windows do kontekstu urządzenia, strukturę reprezentującą prostokąt związany z nową Metafilejednostką RectangleF miary oraz EmfType wyliczenie określające format Metafileklasy . |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, uchwyt systemu Windows do kontekstu urządzenia, strukturę reprezentującą prostokąt związany z nową Metafilejednostką RectangleF miary oraz EmfType wyliczenie określające format Metafileklasy . Można również dodać ciąg opisowy. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, String) |
Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, dojście systemu Windows do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt, który wiąże nową Metafilejednostkę miary i podaną jednostkę miary. Można również dodać ciąg opisowy. |
Właściwości
Flags |
Pobiera flagi atrybutów dla danych pikseli tego Imageelementu . (Odziedziczone po Image) |
FrameDimensionsList |
Pobiera tablicę identyfikatorów GUID reprezentujących wymiary ramek w tym Imageobiekcie . (Odziedziczone po Image) |
Height |
Pobiera wysokość w pikselach tego elementu Image. (Odziedziczone po Image) |
HorizontalResolution |
Pobiera rozdzielczość poziomą w pikselach na cal tego Imageelementu . (Odziedziczone po Image) |
Palette |
Pobiera lub ustawia paletę kolorów używaną dla tego elementu Image. (Odziedziczone po Image) |
PhysicalDimension |
Pobiera szerokość i wysokość tego obrazu. (Odziedziczone po Image) |
PixelFormat |
Pobiera format pikseli dla tego Imagepliku . (Odziedziczone po Image) |
PropertyIdList |
Pobiera identyfikatory elementów właściwości przechowywanych w tym obiekcie Image. (Odziedziczone po Image) |
PropertyItems |
Pobiera wszystkie elementy właściwości (elementy metadanych) przechowywane w tym obiekcie Image. (Odziedziczone po Image) |
RawFormat |
Pobiera format pliku tego Imagepliku . (Odziedziczone po Image) |
Size |
Pobiera szerokość i wysokość obrazu w pikselach. (Odziedziczone po Image) |
Tag |
Pobiera lub ustawia obiekt, który dostarcza dodatkowe dane dotyczące obrazu. (Odziedziczone po Image) |
VerticalResolution |
Pobiera rozdzielczość pionową w pikselach na cal tego Imageelementu . (Odziedziczone po Image) |
Width |
Pobiera szerokość w pikselach tego elementu Image. (Odziedziczone po Image) |
Metody
Clone() |
Tworzy dokładną kopię tego elementu Image. (Odziedziczone po Image) |
CreateObjRef(Type) |
Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym. (Odziedziczone po MarshalByRefObject) |
Dispose() |
Zwalnia wszystkie zasoby używane przez ten Imageprogram . (Odziedziczone po Image) |
Dispose(Boolean) |
Zwalnia zasoby niezarządzane używane przez element Image i opcjonalnie zwalnia zasoby zarządzane. (Odziedziczone po Image) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetBounds(GraphicsUnit) |
Pobiera granice obrazu w określonej lekcji. (Odziedziczone po Image) |
GetEncoderParameterList(Guid) |
Zwraca informacje o parametrach obsługiwanych przez określony koder obrazu. (Odziedziczone po Image) |
GetFrameCount(FrameDimension) |
Zwraca liczbę ramek określonego wymiaru. (Odziedziczone po Image) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetHenhmetafile() |
Zwraca uchwyt systemu Windows do rozszerzonego Metafileelementu . |
GetLifetimeService() |
Przestarzałe.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetMetafileHeader() |
MetafileHeader Zwraca wartość skojarzona z tym Metafileelementem . |
GetMetafileHeader(IntPtr) |
MetafileHeader Zwraca wartość skojarzona z określonym Metafileelementem . |
GetMetafileHeader(IntPtr, WmfPlaceableFileHeader) |
MetafileHeader Zwraca wartość skojarzona z określonym Metafileelementem . |
GetMetafileHeader(Stream) |
MetafileHeader Zwraca wartość skojarzona z określonym Metafileelementem . |
GetMetafileHeader(String) |
Zwraca wartość MetafileHeader skojarzona z określonym Metafileelementem . |
GetPropertyItem(Int32) |
Pobiera określony element właściwości z tego Imageelementu . (Odziedziczone po Image) |
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr) |
Zwraca miniaturę dla tego pliku Image. (Odziedziczone po Image) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
MemberwiseClone(Boolean) |
Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu. (Odziedziczone po MarshalByRefObject) |
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[]) |
Odtwarza pojedynczy rekord metapliku. |
RemovePropertyItem(Int32) |
Usuwa określony element właściwości z tego Imageelementu . (Odziedziczone po Image) |
RotateFlip(RotateFlipType) |
Obraca, przerzuca lub obraca i odwraca element Image. (Odziedziczone po Image) |
Save(Stream, ImageCodecInfo, EncoderParameters) |
Zapisuje ten obraz w określonym strumieniu z określonymi parametrami kodera i kodera obrazu. (Odziedziczone po Image) |
Save(Stream, ImageFormat) |
Zapisuje ten obraz w określonym strumieniu w określonym formacie. (Odziedziczone po Image) |
Save(String) |
Zapisuje to Image w określonym pliku lub strumieniu. (Odziedziczone po Image) |
Save(String, ImageCodecInfo, EncoderParameters) |
Zapisuje to Image w określonym pliku z określonymi parametrami kodera i kodera obrazu. (Odziedziczone po Image) |
Save(String, ImageFormat) |
Zapisuje to Image w określonym pliku w określonym formacie. (Odziedziczone po Image) |
SaveAdd(EncoderParameters) |
Dodaje ramkę do pliku lub strumienia określonego w poprzednim wywołaniu metody Save . Użyj tej metody, aby zapisać wybrane ramki z obrazu z wieloma ramkami do innego obrazu z wieloma ramkami. (Odziedziczone po Image) |
SaveAdd(Image, EncoderParameters) |
Dodaje ramkę do pliku lub strumienia określonego w poprzednim wywołaniu metody Save . (Odziedziczone po Image) |
SelectActiveFrame(FrameDimension, Int32) |
Wybiera ramkę określoną przez wymiar i indeks. (Odziedziczone po Image) |
SetPropertyItem(PropertyItem) |
Przechowuje element właściwości (część metadanych) w tym obiekcie Image. (Odziedziczone po Image) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Wypełnia element SerializationInfo danymi potrzebnymi do serializacji obiektu docelowego. (Odziedziczone po Image) |