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 메서드를 사용하여 그래픽 이미지를 WMF(Windows 메타파일 형식) 또는 EMF(고급 메타파일 형식) 파일로 저장하는 경우 결과 파일은 PNG(이식 가능한 네트워크 그래픽) 파일로 저장됩니다. 이 동작은 .NET Framework의 GDI+ 구성 요소에 파일을 .wmf 또는 .emf 파일로 저장하는 데 사용할 수 있는 인코더가 없기 때문에 발생합니다.
메모
.NET 6 이상 버전에서는 이 형식을 포함하는 System.Drawing.Common 패키지Windows 운영 체제에서만 지원됩니다. 플랫폼 간 앱에서 이 형식을 사용하면 컴파일 시간 경고 및 런타임 예외가 발생합니다. 자세한 내용은 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형식을 지정하는 EmfType 열거형으로 바인딩된 지정된 디바이스 컨텍스트에서 Metafile 클래스의 새 인스턴스를 초기화합니다. 파일 이름을 지정하기 위해 문자열을 제공할 수 있습니다. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
제공된 측정 단위를 사용하는 지정된 사각형과 Metafile형식을 지정하는 EmfType 열거형으로 바인딩된 지정된 디바이스 컨텍스트에서 Metafile 클래스의 새 인스턴스를 초기화합니다. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit) |
지정된 디바이스 컨텍스트에서 제공된 측정 단위를 사용하는 지정된 사각형으로 바인딩된 Metafile 클래스의 새 인스턴스를 초기화합니다. |
Metafile(IntPtr, Rectangle) |
지정된 사각형으로 제한된 지정된 디바이스 컨텍스트에서 Metafile 클래스의 새 인스턴스를 초기화합니다. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
제공된 측정 단위를 사용하는 지정된 사각형과 Metafile형식을 지정하는 EmfType 열거형으로 바인딩된 지정된 디바이스 컨텍스트에서 Metafile 클래스의 새 인스턴스를 초기화합니다. 파일 이름을 지정하기 위해 문자열을 제공할 수 있습니다. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
제공된 측정 단위를 사용하는 지정된 사각형과 Metafile형식을 지정하는 EmfType 열거형으로 바인딩된 지정된 디바이스 컨텍스트에서 Metafile 클래스의 새 인스턴스를 초기화합니다. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit) |
지정된 디바이스 컨텍스트에서 제공된 측정 단위를 사용하는 지정된 사각형으로 바인딩된 Metafile 클래스의 새 인스턴스를 초기화합니다. |
Metafile(IntPtr, RectangleF) |
지정된 사각형으로 제한된 지정된 디바이스 컨텍스트에서 Metafile 클래스의 새 인스턴스를 초기화합니다. |
Metafile(IntPtr, WmfPlaceableFileHeader, Boolean) |
지정된 핸들 및 WmfPlaceableFileHeaderMetafile 클래스의 새 인스턴스를 초기화합니다. 또한 메타파일을 삭제할 때 |
Metafile(IntPtr, WmfPlaceableFileHeader) |
지정된 핸들 및 WmfPlaceableFileHeaderMetafile 클래스의 새 인스턴스를 초기화합니다. |
Metafile(Stream, IntPtr, EmfType, String) |
지정된 데이터 스트림에서 Metafile 클래스의 새 인스턴스, 디바이스 컨텍스트에 대한 Windows 핸들 및 Metafile형식을 지정하는 EmfType 열거형을 초기화합니다. 또한 새 Metafile 대한 설명이 포함된 문자열을 추가할 수 있습니다. |
Metafile(Stream, IntPtr, EmfType) |
지정된 데이터 스트림에서 Metafile 클래스의 새 인스턴스, 디바이스 컨텍스트에 대한 Windows 핸들 및 Metafile형식을 지정하는 EmfType 열거형을 초기화합니다. |
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) |
지정된 데이터 스트림에서 Metafile 클래스의 새 인스턴스, 디바이스 컨텍스트에 대한 Windows 핸들, 새 Metafile경계를 지정하는 사각형을 나타내는 Rectangle 구조체 및 제공된 측정 단위를 초기화합니다. |
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) |
지정된 데이터 스트림에서 Metafile 클래스의 새 인스턴스, 디바이스 컨텍스트에 대한 Windows 핸들, 새 Metafile경계를 지정하는 사각형을 나타내는 RectangleF 구조체 및 제공된 측정 단위를 초기화합니다. |
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() |
향상된 MetafileWindows 핸들을 반환합니다. |
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) |
대상 개체를 serialize하는 데 필요한 데이터로 SerializationInfo 채웁니다. (다음에서 상속됨 Image) |
적용 대상
.NET