Bagikan melalui


Metafile Kelas

Definisi

Mendefinisikan metafile grafis. Metafile berisi rekaman yang menjelaskan urutan operasi grafis yang dapat direkam (dibangun) dan diputar kembali (ditampilkan). Kelas ini tidak dapat diwariskan.

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
Warisan
Atribut

Contoh

Contoh kode berikut menunjukkan cara membuat Metafile dan menggunakan PlayRecord metode .


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

Keterangan

Ketika Anda menggunakan Save metode untuk menyimpan gambar grafis sebagai file Windows Metafile Format (WMF) atau Enhanced Metafile Format (EMF), file yang dihasilkan disimpan sebagai file Portable Network Graphics (PNG). Perilaku ini terjadi karena komponen GDI+ dari .NET Framework tidak memiliki encoder yang dapat Anda gunakan untuk menyimpan file sebagai file .wmf atau .emf.

Catatan

Dalam .NET 6 dan versi yang lebih baru, paket System.Drawing.Common, yang mencakup jenis ini, hanya didukung pada sistem operasi Windows. Penggunaan jenis ini dalam aplikasi lintas platform menyebabkan peringatan waktu kompilasi dan pengecualian run-time. Untuk informasi selengkapnya, lihat System.Drawing.Common hanya didukung di Windows.

Konstruktor

Metafile(IntPtr, Boolean)

Menginisialisasi instans Metafile baru kelas dari handel yang ditentukan.

Metafile(IntPtr, EmfType)

Menginisialisasi instans Metafile baru kelas dari handel yang ditentukan ke konteks perangkat dan EmfType enumerasi yang menentukan format Metafile.

Metafile(IntPtr, EmfType, String)

Menginisialisasi instans Metafile baru kelas dari handel yang ditentukan ke konteks perangkat dan EmfType enumerasi yang menentukan format Metafile. String dapat diberikan untuk memberi nama file.

Metafile(IntPtr, Rectangle)

Menginisialisasi instans Metafile baru kelas dari konteks perangkat yang ditentukan, dibatasi oleh persegi panjang yang ditentukan.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Menginisialisasi instans Metafile baru kelas dari konteks perangkat yang ditentukan, dibatasi oleh persegi panjang yang ditentukan yang menggunakan unit pengukuran yang disediakan.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Menginisialisasi instans Metafile baru kelas dari konteks perangkat yang ditentukan, dibatasi oleh persegi panjang yang ditentukan yang menggunakan unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile.

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

Menginisialisasi instans Metafile baru kelas dari konteks perangkat yang ditentukan, dibatasi oleh persegi panjang yang ditentukan yang menggunakan unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile. String dapat disediakan untuk memberi nama file.

Metafile(IntPtr, RectangleF)

Menginisialisasi instans Metafile baru kelas dari konteks perangkat yang ditentukan, dibatasi oleh persegi panjang yang ditentukan.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Menginisialisasi instans Metafile baru kelas dari konteks perangkat yang ditentukan, dibatasi oleh persegi panjang yang ditentukan yang menggunakan unit pengukuran yang disediakan.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Menginisialisasi instans Metafile baru kelas dari konteks perangkat yang ditentukan, dibatasi oleh persegi panjang yang ditentukan yang menggunakan unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile.

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

Menginisialisasi instans Metafile baru kelas dari konteks perangkat yang ditentukan, dibatasi oleh persegi panjang yang ditentukan yang menggunakan unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile. String dapat disediakan untuk memberi nama file.

Metafile(IntPtr, WmfPlaceableFileHeader)

Menginisialisasi instans Metafile baru kelas dari handel yang ditentukan dan WmfPlaceableFileHeader.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Menginisialisasi instans Metafile baru kelas dari handel yang ditentukan dan WmfPlaceableFileHeader. Selain itu deleteWmf , parameter dapat digunakan untuk menghapus handel saat metafile dihapus.

Metafile(Stream)

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan.

Metafile(Stream, IntPtr)

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan.

Metafile(Stream, IntPtr, EmfType)

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, dan EmfType enumerasi yang menentukan format Metafile.

Metafile(Stream, IntPtr, EmfType, String)

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, dan EmfType enumerasi yang menentukan format Metafile. Selain itu, string yang berisi nama deskriptif untuk yang baru Metafile dapat ditambahkan.

Metafile(Stream, IntPtr, Rectangle)

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, dan Rectangle struktur yang mewakili persegi panjang yang mengikat yang baru Metafile.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, Rectangle struktur yang mewakili persegi panjang yang mengikat baru Metafile, dan unit pengukuran yang disediakan.

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

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, Rectangle struktur yang mewakili persegi panjang yang mengikat baru Metafile, unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile.

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

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, Rectangle struktur yang mewakili persegi panjang yang mengikat baru Metafile, unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile. String yang berisi nama deskriptif untuk yang baru Metafile dapat ditambahkan.

Metafile(Stream, IntPtr, RectangleF)

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, dan RectangleF struktur yang mewakili persegi panjang yang mengikat yang baru Metafile.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, RectangleF struktur yang mewakili persegi panjang yang mengikat baru Metafile, dan unit pengukuran yang disediakan.

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

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, RectangleF struktur yang mewakili persegi panjang yang mengikat baru Metafile, unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile.

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

Menginisialisasi instans Metafile baru kelas dari aliran data yang ditentukan, handel Windows ke konteks perangkat, RectangleF struktur yang mewakili persegi panjang yang mengikat baru Metafile, unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile. String yang berisi nama deskriptif untuk yang baru Metafile dapat ditambahkan.

Metafile(String)

Menginisialisasi instans Metafile baru kelas dari nama file yang ditentukan.

Metafile(String, IntPtr)

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan.

Metafile(String, IntPtr, EmfType)

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, dan EmfType enumerasi yang menentukan format Metafile.

Metafile(String, IntPtr, EmfType, String)

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, dan EmfType enumerasi yang menentukan format Metafile. String deskriptif juga dapat ditambahkan.

Metafile(String, IntPtr, Rectangle)

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, dan Rectangle struktur yang mewakili persegi panjang yang mengikat yang baru Metafile.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, Rectangle struktur yang mewakili persegi panjang yang mengikat baru Metafile, dan unit pengukuran yang disediakan.

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

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, Rectangle struktur yang mewakili persegi panjang yang mengikat baru Metafile, unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile.

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

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, Rectangle struktur yang mewakili persegi panjang yang mengikat baru Metafile, unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile. String deskriptif juga dapat ditambahkan.

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

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, Rectangle struktur yang mewakili persegi panjang yang mengikat baru Metafile, dan unit pengukuran yang disediakan. String deskriptif juga dapat ditambahkan.

Metafile(String, IntPtr, RectangleF)

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, dan RectangleF struktur yang mewakili persegi panjang yang mengikat yang baru Metafile.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, RectangleF struktur yang mewakili persegi panjang yang mengikat baru Metafile, dan unit pengukuran yang disediakan.

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

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, RectangleF struktur yang mewakili persegi panjang yang mengikat baru Metafile, unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile.

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

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, RectangleF struktur yang mewakili persegi panjang yang mengikat baru Metafile, unit pengukuran yang disediakan, dan EmfType enumerasi yang menentukan format Metafile. String deskriptif juga dapat ditambahkan.

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

Menginisialisasi instans Metafile baru kelas dengan nama file yang ditentukan, handel Windows ke konteks perangkat, RectangleF struktur yang mewakili persegi panjang yang mengikat baru Metafile, dan unit pengukuran yang disediakan. String deskriptif juga dapat ditambahkan.

Properti

Flags

Mendapatkan bendera atribut untuk data piksel ini Image.

(Diperoleh dari Image)
FrameDimensionsList

Mendapatkan array GUID yang mewakili dimensi bingkai dalam ini Image.

(Diperoleh dari Image)
Height

Mendapatkan tinggi, dalam piksel, dari ini Image.

(Diperoleh dari Image)
HorizontalResolution

Mendapatkan resolusi horizontal, dalam piksel per inci, dari ini Image.

(Diperoleh dari Image)
Palette

Mendapatkan atau mengatur palet warna yang digunakan untuk ini Image.

(Diperoleh dari Image)
PhysicalDimension

Mendapatkan lebar dan tinggi gambar ini.

(Diperoleh dari Image)
PixelFormat

Mendapatkan format piksel untuk ini Image.

(Diperoleh dari Image)
PropertyIdList

Mendapatkan ID item properti yang disimpan dalam ini Image.

(Diperoleh dari Image)
PropertyItems

Mendapatkan semua item properti (potongan metadata) yang disimpan dalam ini Image.

(Diperoleh dari Image)
RawFormat

Mendapatkan format file dari ini Image.

(Diperoleh dari Image)
Size

Mendapatkan lebar dan tinggi, dalam piksel, dari gambar ini.

(Diperoleh dari Image)
Tag

Mendapatkan atau mengatur objek yang menyediakan data tambahan tentang gambar.

(Diperoleh dari Image)
VerticalResolution

Mendapatkan resolusi vertikal, dalam piksel per inci, dari ini Image.

(Diperoleh dari Image)
Width

Mendapatkan lebar, dalam piksel, dari ini Image.

(Diperoleh dari Image)

Metode

Clone()

Membuat salinan yang tepat dari ini Image.

(Diperoleh dari Image)
CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
Dispose()

Merilis semua sumber daya yang digunakan oleh ini Image.

(Diperoleh dari Image)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh Image dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari Image)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetBounds(GraphicsUnit)

Mendapatkan batas gambar di unit yang ditentukan.

(Diperoleh dari Image)
GetEncoderParameterList(Guid)

Mengembalikan informasi tentang parameter yang didukung oleh encoder gambar yang ditentukan.

(Diperoleh dari Image)
GetFrameCount(FrameDimension)

Mengembalikan jumlah bingkai dimensi yang ditentukan.

(Diperoleh dari Image)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetHenhmetafile()

Mengembalikan handel Windows ke handel yang ditingkatkan Metafile.

GetLifetimeService()
Kedaluwarsa.

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetMetafileHeader()

Mengembalikan yang MetafileHeader terkait dengan ini Metafile.

GetMetafileHeader(IntPtr)

Mengembalikan yang MetafileHeader terkait dengan yang ditentukan Metafile.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Mengembalikan yang MetafileHeader terkait dengan yang ditentukan Metafile.

GetMetafileHeader(Stream)

Mengembalikan yang MetafileHeader terkait dengan yang ditentukan Metafile.

GetMetafileHeader(String)

Mengembalikan yang MetafileHeader terkait dengan yang ditentukan Metafile.

GetPropertyItem(Int32)

Mendapatkan item properti yang ditentukan dari ini Image.

(Diperoleh dari Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Mengembalikan gambar mini untuk ini Image.

(Diperoleh dari Image)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()
Kedaluwarsa.

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Memainkan rekaman metafile individual.

RemovePropertyItem(Int32)

Menghapus item properti yang ditentukan dari ini Image.

(Diperoleh dari Image)
RotateFlip(RotateFlipType)

Memutar, membalik, atau memutar dan membalik Image.

(Diperoleh dari Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Menyimpan gambar ini ke aliran yang ditentukan, dengan parameter encoder dan encoder gambar yang ditentukan.

(Diperoleh dari Image)
Save(Stream, ImageFormat)

Menyimpan gambar ini ke aliran yang ditentukan dalam format yang ditentukan.

(Diperoleh dari Image)
Save(String)

Menyimpan ini Image ke file atau aliran yang ditentukan.

(Diperoleh dari Image)
Save(String, ImageCodecInfo, EncoderParameters)

Menyimpan ini Image ke file yang ditentukan, dengan parameter encoder dan image-encoder yang ditentukan.

(Diperoleh dari Image)
Save(String, ImageFormat)

Simpan ini Image ke file yang ditentukan dalam format yang ditentukan.

(Diperoleh dari Image)
SaveAdd(EncoderParameters)

Menambahkan bingkai ke file atau aliran yang ditentukan dalam panggilan sebelumnya ke Save metode . Gunakan metode ini untuk menyimpan bingkai yang dipilih dari gambar multi-bingkai ke gambar multi-bingkai lainnya.

(Diperoleh dari Image)
SaveAdd(Image, EncoderParameters)

Menambahkan bingkai ke file atau aliran yang ditentukan dalam panggilan sebelumnya ke Save metode .

(Diperoleh dari Image)
SelectActiveFrame(FrameDimension, Int32)

Memilih bingkai yang ditentukan oleh dimensi dan indeks.

(Diperoleh dari Image)
SetPropertyItem(PropertyItem)

Menyimpan item properti (bagian metadata) di ini Image.

(Diperoleh dari Image)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Mengisi dengan data yang SerializationInfo diperlukan untuk membuat serialisasi objek target.

(Diperoleh dari Image)

Berlaku untuk