Metafile クラス

定義

グラフィック メタファイルを定義します。 メタファイルには、記録 (構築) および再生 (表示) できる一連のグラフィックス操作を記述するレコードが含まれます。 このクラスは継承できません。

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
継承
属性

次のコード例では、Metafile を作成し、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

注釈

Save メソッドを使用してグラフィック イメージを Windows メタファイル形式 (WMF) または拡張メタファイル形式 (EMF) ファイルとして保存すると、結果のファイルは代わりにポータブル ネットワーク グラフィックス (PNG) ファイルとして保存されます。 この動作は、.NET Framework の GDI+ コンポーネントに、ファイルを .wmf または .emf ファイルとして保存するために使用できるエンコーダーがないために発生します。

手記

.NET 6 以降のバージョンでは、この種類を含む System.Drawing.Common パッケージは、Windows オペレーティング システムでのみサポートされています。 クロスプラットフォーム アプリでこの種類を使用すると、コンパイル時の警告と実行時の例外が発生します。 詳細については、「System.Drawing.Common が Windowsでのみサポートされる」を参照してください。

コンストラクター

Metafile(IntPtr, Boolean)

指定したハンドルから Metafile クラスの新しいインスタンスを初期化します。

Metafile(IntPtr, EmfType, String)

指定したハンドルからデバイス コンテキストへの Metafile クラスの新しいインスタンスと、Metafileの形式を指定する EmfType 列挙体を初期化します。 ファイルに名前を付ける文字列を指定できます。

Metafile(IntPtr, EmfType)

指定したハンドルからデバイス コンテキストへの Metafile クラスの新しいインスタンスと、Metafileの形式を指定する EmfType 列挙体を初期化します。

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

指定したデバイス コンテキストから Metafile クラスの新しいインスタンスを初期化します。このインスタンスは、指定された測定単位を使用する指定した四角形と、Metafileの形式を指定する EmfType 列挙体で囲まれます。 ファイルに名前を付ける文字列を指定できます。

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

指定したデバイス コンテキストから Metafile クラスの新しいインスタンスを初期化します。このインスタンスは、指定された測定単位を使用する指定した四角形と、Metafileの形式を指定する EmfType 列挙体で囲まれます。

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

指定した測定単位を使用する指定した四角形で囲まれた、指定したデバイス コンテキストから、Metafile クラスの新しいインスタンスを初期化します。

Metafile(IntPtr, Rectangle)

指定した四角形で囲まれた、指定したデバイス コンテキストから Metafile クラスの新しいインスタンスを初期化します。

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

指定したデバイス コンテキストから Metafile クラスの新しいインスタンスを初期化します。このインスタンスは、指定された測定単位を使用する指定した四角形と、Metafileの形式を指定する EmfType 列挙体で囲まれます。 ファイルに名前を付ける文字列を指定できます。

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

指定したデバイス コンテキストから Metafile クラスの新しいインスタンスを初期化します。このインスタンスは、指定された測定単位を使用する指定した四角形と、Metafileの形式を指定する EmfType 列挙体で囲まれます。

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

指定した測定単位を使用する指定した四角形で囲まれた、指定したデバイス コンテキストから、Metafile クラスの新しいインスタンスを初期化します。

Metafile(IntPtr, RectangleF)

指定した四角形で囲まれた、指定したデバイス コンテキストから Metafile クラスの新しいインスタンスを初期化します。

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

指定したハンドルと WmfPlaceableFileHeaderから、Metafile クラスの新しいインスタンスを初期化します。 また、メタファイルが削除されたときに、deleteWmf パラメーターを使用してハンドルを削除することもできます。

Metafile(IntPtr, WmfPlaceableFileHeader)

指定したハンドルと WmfPlaceableFileHeaderから、Metafile クラスの新しいインスタンスを初期化します。

Metafile(Stream, IntPtr, EmfType, String)

指定したデータ ストリーム、デバイス コンテキストへの Windows ハンドル、および Metafileの形式を指定する EmfType 列挙から、Metafile クラスの新しいインスタンスを初期化します。 また、新しい Metafile のわかりやすい名前を含む文字列を追加することもできます。

Metafile(Stream, IntPtr, EmfType)

指定したデータ ストリーム、デバイス コンテキストへの Windows ハンドル、および Metafileの形式を指定する EmfType 列挙から、Metafile クラスの新しいインスタンスを初期化します。

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

指定したデータ ストリームから Metafile クラスの新しいインスタンス、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す Rectangle 構造体、指定された測定単位、および Metafileの形式を指定する EmfType 列挙体を初期化します。 新しい Metafile のわかりやすい名前を含む文字列を追加できます。

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

指定したデータ ストリームから Metafile クラスの新しいインスタンス、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す Rectangle 構造体、指定された測定単位、および Metafileの形式を指定する EmfType 列挙体を初期化します。

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

指定したデータ ストリーム、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す Rectangle 構造体、および指定された測定単位から、Metafile クラスの新しいインスタンスを初期化します。

Metafile(Stream, IntPtr, Rectangle)

指定したデータ ストリームから Metafile クラスの新しいインスタンス、デバイス コンテキストへの Windows ハンドル、および新しい Metafileをバインドする四角形を表す Rectangle 構造体を初期化します。

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

指定したデータ ストリームから Metafile クラスの新しいインスタンス、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す RectangleF 構造体、指定された測定単位、および Metafileの形式を指定する EmfType 列挙体を初期化します。 新しい Metafile のわかりやすい名前を含む文字列を追加できます。

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

指定したデータ ストリームから Metafile クラスの新しいインスタンス、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す RectangleF 構造体、指定された測定単位、および Metafileの形式を指定する EmfType 列挙体を初期化します。

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

指定したデータ ストリーム、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す RectangleF 構造体、および指定された測定単位から、Metafile クラスの新しいインスタンスを初期化します。

Metafile(Stream, IntPtr, RectangleF)

指定したデータ ストリームから Metafile クラスの新しいインスタンス、デバイス コンテキストへの Windows ハンドル、および新しい Metafileをバインドする四角形を表す RectangleF 構造体を初期化します。

Metafile(Stream, IntPtr)

指定したデータ ストリームから Metafile クラスの新しいインスタンスを初期化します。

Metafile(Stream)

指定したデータ ストリームから Metafile クラスの新しいインスタンスを初期化します。

Metafile(String, IntPtr, EmfType, String)

指定したファイル名、デバイス コンテキストへの Windows ハンドル、および Metafileの形式を指定する EmfType 列挙体を使用して、Metafile クラスの新しいインスタンスを初期化します。 説明的な文字列も追加できます。

Metafile(String, IntPtr, EmfType)

指定したファイル名、デバイス コンテキストへの Windows ハンドル、および Metafileの形式を指定する EmfType 列挙体を使用して、Metafile クラスの新しいインスタンスを初期化します。

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

指定したファイル名、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す Rectangle 構造体、指定された測定単位、および Metafileの形式を指定する EmfType 列挙体を使用して、Metafile クラスの新しいインスタンスを初期化します。 説明的な文字列を追加することもできます。

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

指定したファイル名、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す Rectangle 構造体、指定された測定単位、および Metafileの形式を指定する EmfType 列挙体を使用して、Metafile クラスの新しいインスタンスを初期化します。

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

指定したファイル名、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す Rectangle 構造体、および指定された測定単位を使用して、Metafile クラスの新しいインスタンスを初期化します。 説明的な文字列を追加することもできます。

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

指定したファイル名、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す Rectangle 構造体、および指定された測定単位を使用して、Metafile クラスの新しいインスタンスを初期化します。

Metafile(String, IntPtr, Rectangle)

指定したファイル名、デバイス コンテキストへの Windows ハンドル、および新しい Metafileをバインドする四角形を表す Rectangle 構造体を使用して、Metafile クラスの新しいインスタンスを初期化します。

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

指定したファイル名、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す RectangleF 構造体、指定された測定単位、および Metafileの形式を指定する EmfType 列挙体を使用して、Metafile クラスの新しいインスタンスを初期化します。 説明的な文字列を追加することもできます。

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

指定したファイル名、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す RectangleF 構造体、指定された測定単位、および Metafileの形式を指定する EmfType 列挙体を使用して、Metafile クラスの新しいインスタンスを初期化します。

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

指定したファイル名、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す RectangleF 構造体、および指定された測定単位を使用して、Metafile クラスの新しいインスタンスを初期化します。 説明的な文字列を追加することもできます。

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

指定したファイル名、デバイス コンテキストへの Windows ハンドル、新しい Metafileをバインドする四角形を表す RectangleF 構造体、および指定された測定単位を使用して、Metafile クラスの新しいインスタンスを初期化します。

Metafile(String, IntPtr, RectangleF)

指定したファイル名、デバイス コンテキストへの Windows ハンドル、および新しい Metafileをバインドする四角形を表す RectangleF 構造体を使用して、Metafile クラスの新しいインスタンスを初期化します。

Metafile(String, IntPtr)

指定したファイル名を使用して、Metafile クラスの新しいインスタンスを初期化します。

Metafile(String)

指定したファイル名から Metafile クラスの新しいインスタンスを初期化します。

プロパティ

Flags

この Imageのピクセル データの属性フラグを取得します。

(継承元 Image)
FrameDimensionsList

この Image内のフレームの次元を表す GUID の配列を取得します。

(継承元 Image)
Height

この Imageの高さをピクセル単位で取得します。

(継承元 Image)
HorizontalResolution

この Imageの水平方向の解像度 (ピクセル/インチ) を取得します。

(継承元 Image)
Palette

この Imageに使用するカラー パレットを取得または設定します。

(継承元 Image)
PhysicalDimension

このイメージの幅と高さを取得します。

(継承元 Image)
PixelFormat

この Imageのピクセル形式を取得します。

(継承元 Image)
PropertyIdList

この Imageに格納されているプロパティ項目の ID を取得します。

(継承元 Image)
PropertyItems

この Imageに格納されているすべてのプロパティ項目 (メタデータの一部) を取得します。

(継承元 Image)
RawFormat

この Imageのファイル形式を取得します。

(継承元 Image)
Size

この画像の幅と高さをピクセル単位で取得します。

(継承元 Image)
Tag

イメージに関する追加データを提供するオブジェクトを取得または設定します。

(継承元 Image)
VerticalResolution

この Imageの垂直方向の解像度 (ピクセル/インチ) を取得します。

(継承元 Image)
Width

この Imageの幅 (ピクセル単位) を取得します。

(継承元 Image)

メソッド

Clone()

この Imageの正確なコピーを作成します。

(継承元 Image)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用されるプロキシの生成に必要なすべての関連情報を含むオブジェクトを作成します。

(継承元 MarshalByRefObject)
Dispose()

この Imageで使用されているすべてのリソースを解放します。

(継承元 Image)
Dispose(Boolean)

Image によって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。

(継承元 Image)
Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetBounds(GraphicsUnit)

指定した単位内のイメージの境界を取得します。

(継承元 Image)
GetEncoderParameterList(Guid)

指定したイメージ エンコーダーでサポートされているパラメーターに関する情報を返します。

(継承元 Image)
GetFrameCount(FrameDimension)

指定したディメンションのフレーム数を返します。

(継承元 Image)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetHenhmetafile()

拡張 Metafileに Windows ハンドルを返します。

GetLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetMetafileHeader()

この Metafileに関連付けられている MetafileHeader を返します。

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

指定した Metafileに関連付けられている MetafileHeader を返します。

GetMetafileHeader(IntPtr)

指定した Metafileに関連付けられている MetafileHeader を返します。

GetMetafileHeader(Stream)

指定した Metafileに関連付けられている MetafileHeader を返します。

GetMetafileHeader(String)

指定した Metafileに関連付けられている MetafileHeader を返します。

GetPropertyItem(Int32)

この Imageから指定したプロパティ項目を取得します。

(継承元 Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

この Imageのサムネイルを返します。

(継承元 Image)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

個々のメタファイル レコードを再生します。

RemovePropertyItem(Int32)

指定したプロパティ項目をこの Imageから削除します。

(継承元 Image)
RotateFlip(RotateFlipType)

Imageを回転、反転、または回転および反転します。

(継承元 Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

指定したエンコーダーパラメーターとイメージ エンコーダー パラメーターを使用して、このイメージを指定したストリームに保存します。

(継承元 Image)
Save(Stream, ImageFormat)

このイメージを、指定した形式で指定されたストリームに保存します。

(継承元 Image)
Save(String, ImageCodecInfo, EncoderParameters)

指定したエンコーダーパラメーターとイメージ エンコーダー パラメーターを使用して、この Image を指定したファイルに保存します。

(継承元 Image)
Save(String, ImageFormat)

この Image を指定した形式で指定したファイルに保存します。

(継承元 Image)
Save(String)

この Image を指定したファイルまたはストリームに保存します。

(継承元 Image)
SaveAdd(EncoderParameters)

Save メソッドの前の呼び出しで指定したファイルまたはストリームにフレームを追加します。 選択したフレームを複数フレーム イメージから別の複数フレーム イメージに保存するには、このメソッドを使用します。

(継承元 Image)
SaveAdd(Image, EncoderParameters)

Save メソッドの前の呼び出しで指定したファイルまたはストリームにフレームを追加します。

(継承元 Image)
SelectActiveFrame(FrameDimension, Int32)

ディメンションとインデックスで指定されたフレームを選択します。

(継承元 Image)
SetPropertyItem(PropertyItem)

この Imageにプロパティ項目 (メタデータの一部) を格納します。

(継承元 Image)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

ターゲット オブジェクトをシリアル化するために必要なデータを SerializationInfo に設定します。

(継承元 Image)

適用対象