Metafile Sınıf

Tanım

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

public ref class Metafile sealed : 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
public sealed class Metafile : System.Drawing.Image
[<System.Serializable>]
type Metafile = class
    inherit Image
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type Metafile = class
    inherit Image
type Metafile = class
    inherit Image
Public NotInheritable Class Metafile
Inherits Image
Devralma
Öznitelikler

Örnekler

Aşağıdaki kod örneği, oluşturma Metafile ve yöntemini kullanma işlemini PlayRecord gösterir.


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

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 Save yöntemini kullandığınızda, sonuçta elde edilen dosya taşınabilir ağ grafikleri (PNG) dosyası olarak kaydedilir. Bu davranış, .NET Framework'ün GDI+ bileşeninin dosyaları .wmf veya .emf dosyaları olarak kaydetmek için kullanabileceğiniz bir kodlayıcıya sahip olmaması nedeniyle oluşur.

Note

.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

Name Description
Metafile(IntPtr, Boolean)

Belirtilen tanıtıcıdan sınıfının yeni bir örneğini Metafile baş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 Metafileyeni bir EmfType örneğini Metafile başlatır. Dosyayı adlandırmak için bir dize sağlanabilir.

Metafile(IntPtr, EmfType)

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

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

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

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

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

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örtgen tarafından sınırlanır.

Metafile(IntPtr, Rectangle)

Belirtilen dikdörtgen tarafından 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, EmfType, String)

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

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

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

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örtgen tarafından sınırlanır.

Metafile(IntPtr, RectangleF)

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

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

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

Metafile(IntPtr, WmfPlaceableFileHeader)

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

Metafile(Stream, IntPtr, EmfType, String)

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

Metafile(Stream, IntPtr, EmfType)

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

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

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

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

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

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

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

Metafile(Stream, IntPtr, Rectangle)

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

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

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

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

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

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

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

Metafile(Stream, IntPtr, RectangleF)

Belirtilen veri akışından Metafile sınıfının yeni bir örneğini, cihaz bağlamı için bir Windows tanıtıcısını ve yeni RectangleF sınırlayan dikdörtgeni temsil eden bir Metafile yapısını 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)

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

Metafile(String, IntPtr, EmfType, String)

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

Metafile(String, IntPtr, EmfType)

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

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

Belirtilen dosya adıyla Metafile sınıfının yeni bir örneğini başlatır. cihaz bağlamının Windows tutamacı, yeni Rectangle sınırlayan dikdörtgeni, sağlanan ölçü birimini ve Metafile biçimini belirten bir EmfType numaralandırmasını temsil eden bir Metafile yapısı. Açıklayıcı bir dize de eklenebilir.

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

Belirtilen dosya adıyla Metafile sınıfının yeni bir örneğini başlatır. cihaz bağlamının Windows tutamacı, yeni Rectangle sınırlayan dikdörtgeni, sağlanan ölçü birimini ve Metafile biçimini belirten bir EmfType numaralandırmasını temsil eden bir Metafile yapısı.

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

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

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

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

Metafile(String, IntPtr, Rectangle)

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

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

Belirtilen dosya adıyla Metafile sınıfının yeni bir örneğini başlatır. cihaz bağlamının Windows tutamacı, yeni RectangleF sınırlayan dikdörtgeni, sağlanan ölçü birimini ve Metafile biçimini belirten bir EmfType numaralandırmasını temsil eden bir Metafile yapısı. Açıklayıcı bir dize de eklenebilir.

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

Belirtilen dosya adıyla Metafile sınıfının yeni bir örneğini başlatır. cihaz bağlamının Windows tutamacı, yeni RectangleF sınırlayan dikdörtgeni, sağlanan ölçü birimini ve Metafile biçimini belirten bir EmfType numaralandırmasını temsil eden bir Metafile yapısı.

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

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

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

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

Metafile(String, IntPtr, RectangleF)

Metafile sınıfının yeni bir örneğini belirtilen dosya adı, cihaz bağlamı için Windows tanıtıcısı ve yeni RectangleF sınırlayan dikdörtgeni temsil eden bir Metafile yapısıyla 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)

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

Özellikler

Name Description
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 dizisi alır.

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

Bunun Imageyüksekliğini piksel cinsinden alır.

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

Bunun Imageyatay çözünürlüğünü inç başına piksel cinsinden 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 nesne alır veya ayarlar.

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

Bunun Imageinç 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

Name Description
Clone()

Bu Imagetam 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)

tarafından Image kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları 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ş bir Metafile için Windows tutamacını 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 MetafileHeaderile ilişkili değerini Metafile döndürür.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

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

GetMetafileHeader(IntPtr)

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()

Geçerli örneğin Type 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 Objectbasit 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, 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)
Save(String)

Bunu Image belirtilen dosyaya veya akışa kaydeder.

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

yöntemine önceki bir çağrıda belirtilen dosyaya veya akışa Save çerçeve ekler. Seçili kareleri ç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 ç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 bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

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

(Devralındığı yer: Image)

Şunlara uygulanır