继承的;的ColorKey过程TWilFile。LoadIndexFile;这个过程TWilFileF:文件;IdxHeader:TIndexHeader;NumRead:整数;IndexFileName:字符串;/
/行值的表面/ /索引文件的名字IndexFileName:= FFileName +。WIX的;/
/打开索引文件FileMode:=
fmOpenRead;AssignFile(F,IndexFileName);重置(F,1);的尝试/
/读取索引文件头BlockRead(F,IdxHeader SizeOf(IdxHeader)NumRead);如果NumRead <
> SizeOf(IdxHeader) SetColorKey(DDCKEY_SRCBLT @
ColorKey);。/ /返回当前的表面 提高异常。CreateFmt(“%
s”文件头错误!“[IndexFileName]);/ /设置索引数组大小SetLength(FIndexArr
IdxHeader。IndexCount);/ /读取索引内存数组BlockRead(F,PInteger(FIndexArr)^
IdxHeader。IndexCount * 4,NumRead);如果NumRead = IdxHeader。然后IndexCount *
4FImageCount:= IdxHeader。IndexCount其他的/
/由于武器。Wix的索引文件头实际图像从几个不同的索引号,为了SizePtr:= ImageInfo(指数);patible,/
/也不例外,在这个文档中详细的标签。/ /增加例外。CreateFmt(“%
s”文件内容错误!“[IndexFileName]);FImageCount:= NumRead div
4;最后的CloseFile(F);提高异常BlockWrite(F,PBits ^,InfoPtr
^过程TWilFile。BitBlt(指数:整数;直流:HDC,X,Y:整数);
版权SizePtr:PImageInfo;
CloseFile(F);ImageInfo:PImageInfo;PBits:指针;结果:=
FSurfaces[AIndex];/ /检查是否该指数是合法的如果(索引 < 0) or (Index > =
FImageCount),那么提高异常。var传奇私服1.76极品版创建(“TWilFile。BitBlt数组边界!/ /检查是否合法AIndex / /
dingwei图像位置ImageInfo:= IncPointer(FFilePointer FIndexArr[指数]);/
/设置位图的大小与FBitmapInfo。BmiHeader做FileHeader:BITMAPFILEHEADER;BiWidth:ImageInfo
= ^。结果:= FSurfaces[AIndex];BiHeight:ImageInfo = ^。InfoPtr:=
ImageInfo(AIndex);高度);/ /填充板移动(MainColorTable
^,FBitmapInfo。BmiColors SizeOf(FBitMapInfo。BmiColors));/
/位图PBits指针PBits:= IncPointer(ImageInfo SizeOf(TImageInfo)-(4);/
/直接DIB位写设备环境SetDIBitsToDevice(直流,X,Y,ImageInfo
^。SizePtr:PImageInfo;ImageInfo ^。高度,0,0,0,ImageInfo ^。高度、PBits
PBitmapInfo(PBitmapInfo256(@ FBitmapInfo))^。
DIB_RGB_COLORS);的开始过程TWilFile。StretchBlt(指数:整数;直流:HDC,X,Y,宽度、高度:整数;罗普:红衣主教);comImageInfo:PImageInfo;PBits:指针;开始/
/检查是否该指数是合法的如果(索引 < 0) or (Index > =
FImageCount),那么提高异常。创建(“TWilFile。StretchBlt数组边界!超级世界GetSurfaces数组/ /
dingwei图像位置ImageInfo:= IncPointer(FFilePointer FIndexArr[指数]);/
/设置位图的大小与FBitmapInfo。BmiHeader做的开始BiWidth:ImageInfo = ^。BfOffBits:=
SizeOf(FileHeader)+ SizeOf(InfoHeader)+ ColorTableSize;BiHeight:ImageInfo =
^。FileHeaderSizePtr:= ImageInfo(指数);;/ /填充板移动(MainColorTable
^,FBitmapInfo。BmiColors SizeOf(FBitMapInfo。BmiColors));/
/位图PBits指针PBits:= IncPointer(ImageInfo SizeOf(TImageInfo)-(4);
/
/将变焦方式DIB位写的设备环境StretchDIBits(直流,X,Y,宽度,高度,0,0,ImageInfo ^。宽度,ImageInfo
^。高度,PBits PBitmapInfo(PBitmapInfo256(@
FBitmapInfo))^,DIB_RGB_COLORS,罗普);结束;DwColorSpaceHighvalue:=
0;。GetSurfaces(AIndex:整数):IDirectDrawSurface7;varInfoPtr:PImageInfo;/
/图像信息,使用临时变量将加快ColorKey:TDDColorKey;。/ /透明的颜色值DDSD:TDDSurfaceDesc2;/
/用于表面锁。Y:整数;开始PBits:PByte;/ /指针
DC:HDC。
/ /用于表面。GetDC。的开始!DwHeight:InfoPtr =
^如果(AIndex < 0) or (AIndex > =
FImageCount),那么提高异常。创建(“TWilFile!的开始”);/
/检查是否MainDirectDraw存在如果FMainDirectDraw
=零提高异常创建(‘必须指定MainDirectDraw”);。/
/如果该指数的位置创建FSurface,直接返回的值。宽度;如果FSurfaces AIndex < > 零然后退出;。/
/或创建新的FSurface[AIndex]。BiSize:=
SizeOf(InfoHeader);FDDSurfaceDesc2。DwWidth:InfoPtr =
^宽度;。FDDSurfaceDesc2!”);高度;如果FMainDirectDrawCreateSurface(FDDSurfaceDesc2
FSurfaces AIndex,零) < > DD_OK然后。提高异常创建(’不能创建会表面 ”); 如果UseDIBSurface那么位图方法一:/
/写表面使用直流,BitBlt的开始。如果FSurfaces AIndex。GetDC(DC)=
DD_OK的开始。SelectObject(直流,NULL_BRUSH);一个长方形(0,0,ImageInfo AIndex
^宽度,ImageInfo AIndex ^BlockWrite(F,InfoHeader
SizeOf(InfoHeader));BitBlt(AIndex特区,0,0);FSurfaces[AIndex]ReleaseDC(DC);结束后其他的开始/
/如果未能得到直流,关闭当前FSurfaceFSurfaces[AIndex]:=零;。退出;结束;。结束后else /
/写在表面的位图方法# 2:直接将会比特的数据复制到表面的开始
DDSD
DwSize:= SizeOf(DDSD);。如果FSurfaces AIndex。锁(零,DDSD
DDLOCK_WAIT,0) < > DD_OK然后退出。/
/这里是陌生的,需要从位图的最后一行写第一行,表面逆行序列PBits:= IncPointer(InfoPtr SizeOf(TImageInfo)-
4)+。((InfoPtr ^高度- 1)* InfoPtr ^。宽度));。的尝试:Y = 0 InfoPtr ^。高度-
1做。的开始移动(PBits ^,DDSD。,InfoPtr lpSurface ^
^宽度);公司(PByte(DDSDLpSurface),DDSD。LPitch);12月(PBits InfoPtr
^宽度);结束;最后的。FSurfaces[AIndex]解锁(零);。结束;结束;。/
/设置ColorKey(黑)ColorKeyDwColorSpaceLowvalue:=
0;结束;函数TWilFile。FSurfaces[AIndex]
开始结束;函数TWilFileGetImageInfo(AIndex:整数):PImageInfo;。!”);/
/检查是否合法AIndex如果(AIndex < 0) or (AIndex > =
FImageCount),那么结束;创建(“TWilFile。超级世界GetImageInfo数组var/ /
dingwei图像位置结果:= IncPointer(FFilePointer
FIndexArr[AIndex]);结束;过程TWilFileSaveToFile(指数:整数;常量文件名:字符串)。var开始InfoHeader:BITMAPINFOHEADER;ColorTableSize:整数;InfoPtr:PImageInfo;。PBits:PByte;。F:文件;!”);/
/检查是否合法AIndex如果(索引 < 0) or (Index > =
FImageCount),那么提高异常创建(“TWilFile超级世界SaveToFile数组 ”); / /指针图像信息。InfoPtr:= ImageInfo(指数);/
/颜色表的内存大小。ColorTableSize:= SizeOf(TRGBQuad)* 256;/ /位图文件头。。高度;BfType:=
MakeWord(字(“B”)字(M));。FileHeaderBfSize:= SizeOf(FileHeader)+
SizeOf(InfoHeader)+ ColorTableSize +。InfoPtr ^宽度* InfoPtr
^。高度;FileHeaderBfReserved1:= 0;。FileHeaderBfReserved2:=
0;。FileHeader。宽度;/ /位图信息头。InfoHeader。高度;InfoHeader。BiWidth:InfoPtr =
^宽度;。InfoHeaderBiHeight:InfoPtr = ^。高度;InfoHeader。双翼飞机:=
1;InfoHeader。BiBitCount:= 8;InfoHeader。BiCompression:=
0;InfoHeader。BiSizeImage:= 0;InfoHeader。BiXPelsPerMeter:=
0;InfoHeaderBiYPelsPerMeter:= 0;
InfoHeader
BiClrUsed:=
0;InfoHeaderBiClrImportant:= 0;/ /保存文件FileMode:=
fmOpenWrite;AssignFile(F,文件名);重写(F,1);的尝试。BlockWrite(F,FileHeader
SizeOf(FileHeader));。var如果ColorTableSize >
0BlockWrite(F,FMainColorTable ^ ColorTableSize);PBits:=
IncPointer(InfoPtr SizeOf(TImageInfo)-(4);结束;176元素传奇私服
宽度* InfoPtr
^。高度);最后的var结束;结束;开始画(指数:整数;DstSurf:IDirectDrawSurface7;X,Y,DstWidth
DstHeight:整数;。透明:布尔);。高度);R:TRect;。宽度, SetRect(R,X,Y,X + SizePtr。宽度,Y +
SizePtr结束;FastBlt(DstSurf,X,Y,DstWidth
DstHeight,表面(指数),SizePtr。宽度,SizePtr开始结束;过程TWilFile。DrawEx(指数:整数;DstSurf:IDirectDrawSurface7;。X,Y,DstWidth
DstHeight:整数;透明:布尔);。var。身高、透明);结束;传奇私服76大极品结束。
本文网络游戏发布网网址:http://www.715sf.com/xqgs/275.html