이름 | 크기 | 설명 |
FileType | 2 | metafile의 저장 장소. 0이면 메모리, 1이면 디스크에 저장되어 있음을 나타낸다. |
HeaderSize | 2 | 헤더 크기. 단위는 word(2바이트). 항상 9이다. |
Version | 2 | metafile을 만든 윈도우즈 버전. |
FileSize | 4 | 파일 크기. 단위는 word(2바이트)이다. |
NumOfObjects | 2 | 저장된 개체의 개수 |
MaxRecordSize | 4 | 가장 큰 레코드 크기. 단위는 word |
NumOfParams | 2 | 사용되지 않음. 항상 0. |
이름 | 크기 | 설명 |
Key | 4 | Placeable metafile임을 나타내는 키. 항상 0x9AC6CDD7이다. |
Handle | 2 | 항상 0. |
Left | 2 | 그림 이미지의 좌측 x좌표. 단위는 보통 Twip |
Top | 2 | 그림 이미지 상단 y좌표. 단위는 보통 Twip |
Right | 2 | 그림 이미지 우측 x좌표. 단위는 보통 Twip |
Bottom | 2 | 그림 이미지 하단 y좌표. 단위는 보통 Twip |
Inch | 2 | 1인치 당 길이. 보통은 1440 twips이다. |
Reserved | 4 | 디스크에 저장 시 항상 0 |
Checksum | 2 | 헤더에 대한 checksum. Key부터 Reserved까지 10개 word에 대해 xor 연산을 한 값을 보관하고 있다. 헤더 10개 word를 xor한 결과와 checksum 값이 서로 다르면 파일이 비정상적임을 나타낸다. |
이름 | 크기 | 설명 |
MappingMode | 2(4) | 메타 파일을 재생할 때 사용할 단위. 1 - Text (Pixel 단위) 2 - Low Metric (0.1 mm) 3 - High Metric (0.01 mm) 4 - Low English (0.01 inch) 5 - High English (0.001 inch) 6 - Twips 1/1440 (inch) 7 - Isotropic (사용자 정의-폭/높이 비율 고정) 8 - Anisotropic (사용자 정의-폭/높이 비율 고정 안됨) |
Width | 2(4) | 그림 이미지 폭 |
Height | 2(4) | 그림 이미지 높이 |
Handle | 2(4) | 디스크에 저장 시 항상 0. |
이름 | 크기 | 설명 |
Size | 4 | Size 필드를 포함한 레코드의 전체 크기. 단위는 word.최소 크기는 3 (Size 필드 2 word + Function 필드 1 word). |
Function | 2 | GDI 함수 번호. 하위 바이트는 GDI 함수를 나타내고 상위 바이트는 전달될 매개 변수의 크기를 나타낸다. 단위는 워드이다. 예를 들어 Rectangle 함수를 나타내는 Function 번호는 0x041B인데 0x1B는 Rectangle 함수를, 0x04는 4word의 매개 변수를 가지고 있음을 나타낸다. |
Parameters[] | N | 전달될 매개 변수 배열. 매개 변수가 여러 개일 경우 순서가 뒤집혀서 저장된다. 예를 들어 Rectangle함수는 X1, Y1, X2, Y2 4개의 매개 변수를 전달 받는데 Y2, X2, Y1, X1의 순서로 저장된다. |
이름 | 크기 | 설명 |
RecordType | 4 | 레코드 타입. 항상 0x00000001 |
RecordSize | 4 | 헤더의 크기. 단위는 바이트. |
BoundsLeft | 4 | 그림 이미지의 크기와 위치. |
BoundsRight | 4 | |
BoundsTop | 4 | |
BoundsBottom | 4 | |
FrameLeft | 4 | 그림 이미지가 그려질 프레임의 크기와 위치. |
FrameRight | 4 | |
FrameTop | 4 | |
FrameBottom | 4 | |
Signature | 4 | 파일 구분자. 항상 0x464D4520이다. |
Version | 4 | EMF 포맷 버전. 보통은 0x00000100 이 저장되어 있다. |
Size | 4 | 전체 metafile 크기. 단위는 바이트. |
NumOfRecords | 4 | 헤더를 포함한 전체 레코드 개수 |
NumOfHandles | 2 | 메모리 핸들 테이블에 저장된 핸들 개수. 보통은 0. |
Reserved | 2 | 사용되지 않음. 항상 0. |
SizeOfDescrip | 4 | Description string 필드에 저장된 16비트 유니코드 문자의 개수. 0이면 description string 필드가 없는 경우이다. |
OffsOfDescrip | 4 | Description string 필드의 시작 위치. 단위는 바이트. 0이면 description string 필드가 없는 경우. |
NumPalEntries | 4 | 컬러 팔레트의 개수. 팔레트는 레코드의 맨 마지막에 위치한다. 팔레트 수가 0이면 팔레트가 없음을 의미한다. |
WidthDevPixels | 4 | 출력 장치의 폭과 높이. 단위는 픽셀. |
HeightDevPixels | 4 | |
WidthDevMM | 4 | 출력 장치의 폭과 높이. 단위는 mm. |
HeightDevMM | 4 | |
DescripString | N | SizeOfDescrip 필드와 OffsOfDescrip 필드가 0이 아니면 헤더의 맨 마지막에 description string이 저장되어 있다. 2바이트 유니코드로 된 임의의 문자열이 저장될 수 있다. 보통 파일에 대한 설명이 저장된다. |
이름 | 크기 | 설명 |
Function | 4 | GDI 함수 번호. |
Size | 4 | Size 필드를 포함한 레코드의 전체 크기. 단위는 바이트. 최소 크기는 8 (Function필드 4바이트 + Size 필드 4바이트). |
Parameters[] | N | 전달될 매개 변수 배열. 매개 변수가 여러 개일 경우 순서가 뒤집혀서 저장된다. |
이름 | 크기 | 설명 |
Function | 4 | End of Record 함수. 항상 14이다. |
Size | 4 | 레코드 전체 크기. 단위는 바이트. |
NumPalEntries | 4 | 컬러 팔레트 개수 |
OffPalEntries | 4 | 컬러 팔레트의 시작 위치. 맨 마지막 레코드의 처음부터 상대적인 위치를 나타낸다. |
Palette[ ] (팔레트가 없는 경우 생략됨) | ||
Red | 1 | 빨간색 세기. |
Green | 1 | 녹색 세기. |
Blue | 1 | 청색 세기. |
Flag | 1 | 플래그. |
: | : | : |
OffToEOF | 4 | 파일의 맨 마지막에서부터 맨 마지막 레코드의 시작 위치까지 바이트 수. 보통 Size 필드와 같은 값을 가지고 있다. |
< 표 7 컬러 팔레트 구조 >
Reference WebSite
http://okjungsoo.tistory.com/m/post/view/id/3
libwmf - http://wvware.sourceforge.net/caolan/index.html
http://netghost.narod.ru/gff/graphics/summary/micmeta.htm
http://wvware.sourceforge.net/caolan/index.html
http://wvware.sourceforge.net/caolan/support.html
http://libuemf.sourceforge.net/
http://blog.didierstevens.com/2007/08/28/analyzing-a-suspect-wmf-file/
JPEG2000 (0) | 2018.09.04 |
---|---|
PNG (0) | 2018.09.04 |
GIF Format (0) | 2018.09.04 |
HEIF(High Efficiency Image File Format) (0) | 2018.09.04 |
Guetzli (0) | 2017.04.15 |
댓글 영역