Metafile クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
グラフィック メタファイルを定義します。 メタファイルには、記録 (構築) および再生 (表示) できる一連のグラフィックス操作を記述するレコードが含まれます。 このクラスは継承できません。
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 クラスの新しいインスタンスを初期化します。 また、メタファイルが削除されたときに、 |
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) |
適用対象
.NET