Access.Image控件PictureData屬性數(shù)組格式

字號:

以下為EMF版(Access 2000及更高版本)的PictureData結構:
    'PictureData信息頭
    PictureData(0-7) PictureData信息頭
    'EMF信息頭
    PictureData(8) iType As Long
    PictureData(12) nSize As Long
    PictureData(16) rclBounds{Long,Long,Long,Long}
    PictureData(32) rclFrame{Long,Long,Long,Long}
    PictureData(48) dSignature As Long
    PictureData(52) nVersion As Long
    PictureData(56) nBytes As Long
    PictureData(60) nRecords As Long
    PictureData(64) nHandles As Integer
    PictureData(66) sReserved As Integer
    PictureData(68) nDescription As Long
    PictureData(72) offDescription As Long
    PictureData(76) nPalEntries As Long
    PictureData(80) szlDevice{Width As Long,Height As Long}
    PictureData(88) szlMillimeters{Long,Long}
    PictureData(96) cbPixelFormat As Long
    PictureData(100) offPixelFormat As Long
    PictureData(104) bOpenGL As Long
    PictureData(108) szMicroMeters{Long,Long}
    'EMF數(shù)據(jù)段
    PictureData(116)~結尾
    【PictureData信息頭】
    PictureData(0)指定整個圖形的格式:
    DIB:設備無關圖元(=40),文件頭長度為40,其后為像素數(shù)據(jù)。
    WMF:Windows MetaFile(=3),文件頭長度為8,其后為WMF。
    EMF:Enhanced MetaFile(=14),文件頭長度為8,其后為EMF。
    Access97及以下版本使用DIB和WMF,Access 2000及以上版本使用DIB/WMF/EMF。
    【EMF信息頭】
    iType指定BMP版本:
    BMP3.0:BITMAPINFOHEADER(=40)也就是DIB
    BMP4.0:BITMAPV4HEADER(=108)
    BMP5.0:BITMAPV5HEADER(=124)
    實際上,iType等價于文件頭的長度,PictureData(8)~PictureData(8+iType)即圖形信息頭的全部內(nèi)容。
    【EMF數(shù)據(jù)段】
    由多條EMF記錄(EMR)構成,每條記錄均包含EMR定義和EMR參數(shù)。(EMF信息頭其實也是一條特殊的EMR,同樣符合EMR格式定義)
    EMR定義:
     iType As Long
     nSize As Long
    EMR.iType
     EMR_HEADER 1
     EMR_POLYBEZIER 2
     EMR_POLYGON 3
     EMR_POLYLINE 4
     EMR_POLYBEZIERTO 5
     EMR_POLYLINETO 6
     EMR_POLYPOLYLINE 7
     EMR_POLYPOLYGON 8
     EMR_SETWINDOWEXTEX 9
     EMR_SETWINDOWORGEX 10
     EMR_SETVIEWPORTEXTEX 11
     EMR_SETVIEWPORTORGEX 12
     EMR_SETBRUSHORGEX 13
     EMR_EOF 14
     EMR_SETPIXELV 15
     EMR_SETMAPPERFLAGS 16
     EMR_SETMAPMODE 17
     EMR_SETBKMODE 18
     EMR_SETPOLYFILLMODE 19
     EMR_SETROP2 20
     EMR_SETSTRETCHBLTMODE 21
     EMR_SETTEXTALIGN 22
     EMR_SETCOLORADJUSTMENT 23
     EMR_SETTEXTCOLOR 24
     EMR_SETBKCOLOR 25
     EMR_OFFSETCLIPRGN 26
     EMR_MOVETOEX 27
     EMR_SETMETARGN 28
     EMR_EXCLUDECLIPRECT 29
     EMR_INTERSECTCLIPRECT 30
     EMR_SCALEVIEWPORTEXTEX 31
     EMR_SCALEWINDOWEXTEX 32
     EMR_SAVEDC 33
     EMR_RESTOREDC 34
     EMR_SETWORLDTRANSFORM 35
     EMR_MODIFYWORLDTRANSFORM 36
     EMR_SELECTOBJECT 37
     EMR_CREATEPEN 38
     EMR_CREATEBRUSHINDIRECT 39
     EMR_DELETEOBJECT 40
     EMR_ANGLEARC 41
     EMR_ELLIPSE 42
     EMR_RECTANGLE 43
     EMR_ROUNDRECT 44
     EMR_ARC 45
     EMR_CHORD 46
     EMR_PIE 47
     EMR_SELECTPALETTE 48
     EMR_CREATEPALETTE 49
     EMR_SETPALETTEENTRIES 50
     EMR_RESIZEPALETTE 51
     EMR_REALIZEPALETTE 52
     EMR_EXTFLOODFILL 53
     EMR_LINETO 54
     EMR_ARCTO 55
     EMR_POLYDRAW 56
     EMR_SETARCDIRECTION 57
     EMR_SETMITERLIMIT &nbs