Metafile Sınıf

Tanım

Grafik meta dosyasını tanımlar. Meta dosyası, kaydedilebilen (oluşturulabilen) ve oynatılabilen (görüntülenen) grafik işlemlerinin bir dizisini açıklayan kayıtlar içerir. Bu sınıf devralınabilir değil.

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
Devralma
Öznitelikler

Örnekler

Aşağıdaki kod örneğinde bir Metafile oluşturma ve yöntemini kullanma işlemleri gösterilmektedir 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

Açıklamalar

Bir grafik görüntüsünü Windows Meta Dosyası Biçimi (WMF) veya Gelişmiş Meta Dosyası Biçimi (EMF) dosyası olarak kaydetmek için yöntemini kullandığınızda Save , sonuçta elde edilen dosya bunun yerine Taşınabilir Ağ Grafikleri (PNG) dosyası olarak kaydedilir. Bu davranış, .NET Framework GDI+ bileşeninin dosyaları .wmf veya .emf dosyaları olarak kaydetmek için kullanabileceğiniz bir kodlayıcıya sahip olmaması nedeniyle oluşur.

Not

.NET 6 ve sonraki sürümlerde, bu türü içeren System.Drawing.Common paketi yalnızca Windows işletim sistemlerinde desteklenir. Platformlar arası uygulamalarda bu türün kullanılması derleme zamanı uyarılarına ve çalışma zamanı özel durumlarına neden olur. Daha fazla bilgi için bkz . System.Drawing.Common yalnızca Windows'ta desteklenir.

Oluşturucular

Metafile(IntPtr, Boolean)

Belirtilen tanıtıcıdan sınıfının yeni bir örneğini Metafile başlatır.

Metafile(IntPtr, EmfType)

Belirtilen tanıtıcıdan bir cihaz bağlamına ve biçimini belirten bir numaralandırmaya sınıfın yeni bir EmfType örneğini MetafileMetafilebaşlatır.

Metafile(IntPtr, EmfType, String)

Belirtilen tanıtıcıdan bir cihaz bağlamına ve biçimini belirten bir numaralandırmaya sınıfın yeni bir EmfType örneğini MetafileMetafilebaşlatır. Dosyayı adlandırmak için bir dize sağlanabilir.

Metafile(IntPtr, Rectangle)

Belirtilen dikdörtgenle sınırlanmış, belirtilen cihaz bağlamından sınıfının yeni bir örneğini Metafile başlatır.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Belirtilen cihaz bağlamından Metafile sınıfının yeni bir örneğini başlatır ve sağlanan ölçü birimini kullanan belirtilen dikdörtgenle sınırlanır.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Belirtilen cihaz bağlamından Metafile sınıfının, sağlanan ölçü birimini kullanan belirtilen dikdörtgenle sınırlanmış yeni bir örneğini ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır.

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

Belirtilen cihaz bağlamından Metafile sınıfının, sağlanan ölçü birimini kullanan belirtilen dikdörtgenle sınırlanmış yeni bir örneğini ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır. Dosyayı adlandırmak için bir dize sağlanabilir.

Metafile(IntPtr, RectangleF)

Belirtilen dikdörtgenle sınırlanmış, belirtilen cihaz bağlamından sınıfının yeni bir örneğini Metafile başlatır.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Belirtilen cihaz bağlamından Metafile sınıfının yeni bir örneğini başlatır ve sağlanan ölçü birimini kullanan belirtilen dikdörtgenle sınırlanır.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Belirtilen cihaz bağlamından Metafile sınıfının, sağlanan ölçü birimini kullanan belirtilen dikdörtgenle sınırlanmış yeni bir örneğini ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır.

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

Belirtilen cihaz bağlamından Metafile sınıfının, sağlanan ölçü birimini kullanan belirtilen dikdörtgenle sınırlanmış yeni bir örneğini ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır. Dosyayı adlandırmak için bir dize sağlanabilir.

Metafile(IntPtr, WmfPlaceableFileHeader)

Belirtilen tanıtıcıdan ve öğesinden sınıfının yeni bir WmfPlaceableFileHeaderörneğini Metafile başlatır.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Belirtilen tanıtıcıdan ve öğesinden sınıfının yeni bir WmfPlaceableFileHeaderörneğini Metafile başlatır. Ayrıca, deleteWmf meta dosyası silindiğinde tanıtıcıyı silmek için parametresi kullanılabilir.

Metafile(Stream)

Belirtilen veri akışından sınıfının yeni bir örneğini Metafile başlatır.

Metafile(Stream, IntPtr)

Belirtilen veri akışından sınıfının yeni bir örneğini Metafile başlatır.

Metafile(Stream, IntPtr, EmfType)

Belirtilen veri akışından sınıfının yeni bir örneğini Metafile , cihaz bağlamına yönelik bir Windows tanıtıcısını ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır.

Metafile(Stream, IntPtr, EmfType, String)

Belirtilen veri akışından sınıfının yeni bir örneğini Metafile , cihaz bağlamına yönelik bir Windows tanıtıcısını ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır. Ayrıca, yeni Metafile için açıklayıcı bir ad içeren bir dize eklenebilir.

Metafile(Stream, IntPtr, Rectangle)

Belirtilen veri akışından sınıfının yeni bir örneğiniMetafile, bir Windows tanıtıcısını bir cihaz bağlamını ve yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir Rectangle yapıyı başlatır.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Belirtilen veri akışından sınıfın Metafile yeni bir örneğini başlatır, cihaz bağlamı için bir Windows tanıtıcısı, yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir Rectangle yapı ve sağlanan ölçü birimi.

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

Sınıfın Metafile belirtilen veri akışından yeni bir örneğini başlatır, windows tanıtıcısını cihaz bağlamına, yeni Metafile, sağlanan ölçü birimini sınırlayan dikdörtgeni temsil eden yapıyı Rectangle ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır.

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

Sınıfın Metafile belirtilen veri akışından yeni bir örneğini başlatır, windows tanıtıcısını cihaz bağlamına, yeni Metafile, sağlanan ölçü birimini sınırlayan dikdörtgeni temsil eden yapıyı Rectangle ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır. Yeni Metafile için açıklayıcı bir ad içeren bir dize eklenebilir.

Metafile(Stream, IntPtr, RectangleF)

Belirtilen veri akışından sınıfının yeni bir örneğiniMetafile, bir Windows tanıtıcısını bir cihaz bağlamını ve yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir RectangleF yapıyı başlatır.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Belirtilen veri akışından sınıfın Metafile yeni bir örneğini başlatır, cihaz bağlamı için bir Windows tanıtıcısı, yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir RectangleF yapı ve sağlanan ölçü birimi.

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

Sınıfın Metafile belirtilen veri akışından yeni bir örneğini başlatır, windows tanıtıcısını cihaz bağlamına, yeni Metafile, sağlanan ölçü birimini sınırlayan dikdörtgeni temsil eden yapıyı RectangleF ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır.

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

Sınıfın Metafile belirtilen veri akışından yeni bir örneğini başlatır, windows tanıtıcısını cihaz bağlamına, yeni Metafile, sağlanan ölçü birimini sınırlayan dikdörtgeni temsil eden yapıyı RectangleF ve biçimini belirten bir EmfType numaralandırmayı Metafilebaşlatır. Yeni Metafile için açıklayıcı bir ad içeren bir dize eklenebilir.

Metafile(String)

Belirtilen dosya adından Metafile sınıfının yeni bir örneğini başlatır.

Metafile(String, IntPtr)

Belirtilen dosya adıyla sınıfının yeni bir örneğini Metafile başlatır.

Metafile(String, IntPtr, EmfType)

Sınıfının yeni bir örneğini Metafile belirtilen dosya adıyla, cihaz bağlamına yönelik bir Windows tanıtıcısıyla ve biçimini Metafilebelirten bir EmfType numaralandırmayla başlatır.

Metafile(String, IntPtr, EmfType, String)

Sınıfının yeni bir örneğini Metafile belirtilen dosya adıyla, cihaz bağlamına yönelik bir Windows tanıtıcısıyla ve biçimini Metafilebelirten bir EmfType numaralandırmayla başlatır. Açıklayıcı bir dize de eklenebilir.

Metafile(String, IntPtr, Rectangle)

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla başlatır, cihaz bağlamı için Bir Windows tanıtıcısı ve yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir Rectangle yapı.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla başlatır, cihaz bağlamı için bir Windows tanıtıcısı, yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir Rectangle yapı ve sağlanan ölçü birimi.

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

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla, Windows tanıtıcısını bir cihaz bağlamına, yeni Metafile, sağlanan ölçü birimini sınırlayan dikdörtgeni temsil eden bir Rectangle yapı ve biçimini Metafilebelirten bir EmfType numaralandırma ile başlatır.

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

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla, Windows tanıtıcısını bir cihaz bağlamına, yeni Metafile, sağlanan ölçü birimini sınırlayan dikdörtgeni temsil eden bir Rectangle yapı ve biçimini Metafilebelirten bir EmfType numaralandırma ile başlatır. Açıklayıcı bir dize de eklenebilir.

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

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla başlatır, cihaz bağlamı için bir Windows tanıtıcısı, yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir Rectangle yapı ve sağlanan ölçü birimi. Açıklayıcı bir dize de eklenebilir.

Metafile(String, IntPtr, RectangleF)

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla başlatır, cihaz bağlamı için Bir Windows tanıtıcısı ve yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir RectangleF yapı.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla başlatır, cihaz bağlamı için bir Windows tanıtıcısı, yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir RectangleF yapı ve sağlanan ölçü birimi.

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

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla, Windows tanıtıcısını bir cihaz bağlamına, yeni Metafile, sağlanan ölçü birimini sınırlayan dikdörtgeni temsil eden bir RectangleF yapı ve biçimini Metafilebelirten bir EmfType numaralandırma ile başlatır.

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

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla, Windows tanıtıcısını bir cihaz bağlamına, yeni Metafile, sağlanan ölçü birimini sınırlayan dikdörtgeni temsil eden bir RectangleF yapı ve biçimini Metafilebelirten bir EmfType numaralandırma ile başlatır. Açıklayıcı bir dize de eklenebilir.

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

Sınıfın Metafile yeni bir örneğini belirtilen dosya adıyla başlatır, cihaz bağlamı için bir Windows tanıtıcısı, yeni Metafileöğesini sınırlayan dikdörtgeni temsil eden bir RectangleF yapı ve sağlanan ölçü birimi. Açıklayıcı bir dize de eklenebilir.

Özellikler

Flags

Bu Imageöğesinin piksel verileri için öznitelik bayraklarını alır.

(Devralındığı yer: Image)
FrameDimensionsList

Bu Imageiçindeki çerçevelerin boyutlarını temsil eden bir GUID dizisini alır.

(Devralındığı yer: Image)
Height

Bu Imagedeğerinin yüksekliğini piksel cinsinden alır.

(Devralındığı yer: Image)
HorizontalResolution

Bu Imageöğesinin inç başına piksel cinsinden yatay çözünürlüğünü alır.

(Devralındığı yer: Image)
Palette

Bu Imageiçin kullanılan renk paletini alır veya ayarlar.

(Devralındığı yer: Image)
PhysicalDimension

Bu görüntünün genişliğini ve yüksekliğini alır.

(Devralındığı yer: Image)
PixelFormat

Bu Imageiçin piksel biçimini alır.

(Devralındığı yer: Image)
PropertyIdList

Bu Imageiçinde depolanan özellik öğelerinin kimliklerini alır.

(Devralındığı yer: Image)
PropertyItems

Bu Imageiçinde depolanan tüm özellik öğelerini (meta veri parçaları) alır.

(Devralındığı yer: Image)
RawFormat

Bu Imagedosyasının dosya biçimini alır.

(Devralındığı yer: Image)
Size

Bu görüntünün genişliğini ve yüksekliğini piksel cinsinden alır.

(Devralındığı yer: Image)
Tag

Görüntü hakkında ek veriler sağlayan bir nesneyi alır veya ayarlar.

(Devralındığı yer: Image)
VerticalResolution

Bu Imageöğesinin inç başına piksel cinsinden dikey çözünürlüğünü alır.

(Devralındığı yer: Image)
Width

Bu Imageöğesinin genişliğini piksel cinsinden alır.

(Devralındığı yer: Image)

Yöntemler

Clone()

Bu Imageöğesinin tam bir kopyasını oluşturur.

(Devralındığı yer: Image)
CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Dispose()

Bu Imagetarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Image)
Dispose(Boolean)

Image tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

(Devralındığı yer: Image)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetBounds(GraphicsUnit)

Belirtilen ünitedeki görüntünün sınırlarını alır.

(Devralındığı yer: Image)
GetEncoderParameterList(Guid)

Belirtilen görüntü kodlayıcı tarafından desteklenen parametreler hakkında bilgi döndürür.

(Devralındığı yer: Image)
GetFrameCount(FrameDimension)

Belirtilen boyutun çerçeve sayısını döndürür.

(Devralındığı yer: Image)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetHenhmetafile()

Gelişmiş Metafilebir öğesine bir Windows tanıtıcısı döndürür.

GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetMetafileHeader()

Bu Metafileile ilişkili öğesini MetafileHeader döndürür.

GetMetafileHeader(IntPtr)

MetafileHeader Belirtilen Metafileile ilişkili değerini döndürür.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

MetafileHeader Belirtilen Metafileile ilişkili değerini döndürür.

GetMetafileHeader(Stream)

MetafileHeader Belirtilen Metafileile ilişkili değerini döndürür.

GetMetafileHeader(String)

MetafileHeader Belirtilen Metafileile ilişkili değerini döndürür.

GetPropertyItem(Int32)

Belirtilen özellik öğesini bu Imageöğesinden alır.

(Devralındığı yer: Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Bu Imageiçin bir küçük resim döndürür.

(Devralındığı yer: Image)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Tek bir meta dosyası kaydını çalar.

RemovePropertyItem(Int32)

Belirtilen özellik öğesini bu Imageöğesinden kaldırır.

(Devralındığı yer: Image)
RotateFlip(RotateFlipType)

döndürür, çevirir veya döndürür ve çevirir Image.

(Devralındığı yer: Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Bu görüntüyü belirtilen kodlayıcı ve görüntü kodlayıcı parametreleriyle belirtilen akışa kaydeder.

(Devralındığı yer: Image)
Save(Stream, ImageFormat)

Bu görüntüyü belirtilen biçimde belirtilen akışa kaydeder.

(Devralındığı yer: Image)
Save(String)

Bunu Image belirtilen dosyaya veya akışa kaydeder.

(Devralındığı yer: Image)
Save(String, ImageCodecInfo, EncoderParameters)

Bunu Image , belirtilen kodlayıcı ve görüntü kodlayıcı parametreleriyle belirtilen dosyaya kaydeder.

(Devralındığı yer: Image)
Save(String, ImageFormat)

Bunu Image belirtilen biçimde belirtilen dosyaya kaydeder.

(Devralındığı yer: Image)
SaveAdd(EncoderParameters)

Yöntemine önceki bir çağrıda belirtilen dosyaya veya akışa Save bir çerçeve ekler. Seçili çerçeveleri birden çok çerçeveli bir görüntüden başka bir çok çerçeveli görüntüye kaydetmek için bu yöntemi kullanın.

(Devralındığı yer: Image)
SaveAdd(Image, EncoderParameters)

Yöntemine önceki bir çağrıda belirtilen dosyaya veya akışa Save bir çerçeve ekler.

(Devralındığı yer: Image)
SelectActiveFrame(FrameDimension, Int32)

Boyut ve dizin tarafından belirtilen çerçeveyi seçer.

(Devralındığı yer: Image)
SetPropertyItem(PropertyItem)

Bu Imageiçinde bir özellik öğesi (meta veri parçası) depolar.

(Devralındığı yer: Image)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

hedef nesneyi seri hale getirmek için gereken verilerle doldurur SerializationInfo .

(Devralındığı yer: Image)

Şunlara uygulanır