当前位置: 首 页 >> 心情故事 >>

传奇私服1.76极品版,wil格式文件调用函数

作者:传奇私服1.76极品版,176元素传奇私服,传奇私服76大极品 日期:2015/11/28 来源:www.715sf.com 人气:

继承的;
的ColorKey

过程TWilFile。LoadIndexFile;
这个过程TWilFile
F:文件;
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 * 4
FImageCount:= 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,宽度、高度:整数;
罗普:红衣主教);
com
ImageInfo: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 = ^。FileHeader
SizePtr:= 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;
var
InfoPtr: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!”);

高度;
如果FMainDirectDraw
CreateSurface(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);
结束后
其他的
开始/ /如果未能得到直流,关闭当前FSurface
FSurfaces[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(DDSD
LpSurface),DDSD。LPitch);
12月(PBits InfoPtr ^
宽度);

结束;
最后的。FSurfaces[AIndex]
解锁(零);。结束;
结束;。/ /设置ColorKey(黑)

ColorKey
DwColorSpaceLowvalue:= 0;
结束;

函数TWilFile。FSurfaces[AIndex]


开始
结束;
函数TWilFile
GetImageInfo(AIndex:整数):PImageInfo;。!”);

/ /检查是否合法AIndex
如果(AIndex < 0) or (AIndex > = FImageCount),那么
结束;

创建(“TWilFile。超级世界GetImageInfo数组
var
/ / dingwei图像位置
结果:= IncPointer(FFilePointer FIndexArr[AIndex]);
结束;
过程TWilFile
SaveToFile(指数:整数;常量文件名:字符串)。
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));。FileHeader
BfSize:= SizeOf(FileHeader)+ SizeOf(InfoHeader)+ ColorTableSize +。InfoPtr ^
宽度* InfoPtr ^。高度;

FileHeader
BfReserved1:= 0;。FileHeader
BfReserved2:= 0;。FileHeader。宽度;
/ /位图信息头。InfoHeader。高度;
InfoHeader。BiWidth:InfoPtr = ^
宽度;。InfoHeader
BiHeight:InfoPtr = ^。高度;
InfoHeader。双翼飞机:= 1;
InfoHeader。BiBitCount:= 8;
InfoHeader。BiCompression:= 0;
InfoHeader。BiSizeImage:= 0;
InfoHeader。BiXPelsPerMeter:= 0;

InfoHeader
BiYPelsPerMeter:= 0;

InfoHeader


BiClrUsed:= 0;
InfoHeader

BiClrImportant:= 0;
/ /保存文件
FileMode:= fmOpenWrite;

AssignFile(F,文件名);
重写(F,1);
的尝试。BlockWrite(F,FileHeader SizeOf(FileHeader));。var
如果ColorTableSize > 0
BlockWrite(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

最新文章
热门排行